When to add controls dynamically and when is it too late to add controls
If you add a control to page/control's control collection too late you might encounter problems. For example if you would add a control of the render phase of the page or of another control, then the added control won't be part of the page's viewstate. Because in that phase (Render phase), the page's SaveViewState was already executed. So even though the new added control would now go through its entire (control) life cycle from the very beginning, from the init phase, but the LoadViewState of this control will NOT be exectued, because this control was added too late and wasn't saved as part of the page's viewstate.
Look at this link - http://msdn.microsoft.com/en-us/library/ms178472.aspx
From that link we can see that when you are in a control's Render method, the viewstate was already saved (The SaveViewState that is part of the Page's methods was already executed and won't be executed again just for this new control). And becasue the new added control is not part of the view state, therefore its LoadViewState won't be hit on postback.
If you add a control after the Load state (of another control), for example if you add controls on the Control-Changed-Events which run AFTER the Load stage, then the LoadPostData of the new added control won't be hit. The reason is probably because it's too late for the Page.RegisterRequiresPostBack(this) to be exectued and affect the new control to be actually registered. Even if I write the Page.RegisterRequiresPostBack(this) inside its OnInit or OnLoad, it's too late because from the Page Methods order, we are already after the Page::OnLoad, as you can see from the chart in http://msdn.microsoft.com/en-us/library/ms178472.aspx
that controls events are raised AFTER the page's onload, and therefore Page.RegisterRequiresPostBack won't be able affect anymore.