NO KIDDING! I wish there were such things as "Master Controls" so that each control that you would put would look the same.
One thing I can think of is to use themes. (I assume you know about those). For example, your "parent" user control has the following markup:
<div class="UserControlContainer">
<h3 class="UserControlHeader">
<asp:Label id="Header_Label" runat="server"/>
</h3>
<div class="UserControlContent">
<asp:Literal id="Content_LIT" runat="server" />
</div>
</div>
I think you said that you're using the HTMLTextWriter to write the above code, which is fine. It's just that you'll have to tell the HTMLTextWriter to render the class attributes. Now, when you create themes (in the App_Themes folder), you can create CSS files to "render" the divs and the h3 (using the class names mentioned int he code above) with all sorts of border colors, types, background colors, fonts, etc.. This solution [for now] doesn't even touch Master Pages.
-----------------------------------------------------------------------------------------
Now, for example, we all of a sudden want to have rounded corners. For that to happen (while we're still in CSS 2.x), we must add a lot to the HTML markup to accomodate the graphics for the four corners. We will have to rewrite our Render function, which is probably what we don't want to do. CSS can only go so far...
So unfortunately, what we want to do is still a nocandu. I hope enough people petition for Master Controls for the ASP.net 4.0 or earlier.
I wish we can just create a control (MyControl C = new MyControl();) and then assign it a MasterControl:(C.MasterControl = "~/MasterControls/MasterControl.masterc";).
I hope somebody posts a solution here.