I've done something where all my modules have the same "Edit" control setup in the module definition and an extra parameter in the URL tells the "Edit" control which control to actually load. I did this (I think) for similar reasons - I didn't want to edit the module definition everytime I needed a new control.
In the "Edit" controls Page_Init I have code like:
*******************************
If Not DotNetNuke.Security.PortalSecurity.IsInRole("SettingsAdmin_P") Then
Response.Redirect(DotNetNuke.Common.AccessDeniedURL("You are not authorized to application settings."), True)
Exit Sub
End If
Dim objModuleSettingsBase As MyApp.Modules.Settings.Base = Me.LoadControl("~/DesktopModules/MyApp/Modules/Settings/" & Key & ".ascx")
objModuleSettingsBase.ModuleConfiguration = Me.ModuleConfiguration
celSettingsControl.Controls.Add(objModuleSettingsBase)
*******************************
MyApp.Modules.Settings.Base inherits from DotNetNuke.Entities.Modules.PortalModuleBase and DNN takes care of loading the Moduleconfiguration.
celSettingsControl (td id="celSettingsControl" runat="server") is the only control in the "Edit" control ascx file.
Steve