from the way that page skin writen. i see that the proccess should render all skin objects before start looking inside the html for panes. so the proccess should go as the following
1 - checking the current page skin html and looking for registered SkinObject (excute them and load thier render output into response object, memory stream)
in this prorccess the Response object can contain some dynamiclly generated panes (came from excuting some special skinObjects)
2 - checking for declared "runat server" html elements that should be loaded as panes. (here the collection of panes will be fillled by this proccess and procces 1)
3 - injecting modules in panes
please correct me if i am wrong. !! i still need to review the code of page_init of the core. !!