Pages are compiled into .Net classes, so markup parsing actually occurs outside the page life cycle. When the request reaches your page, the page class was compiled from a combination of markup and code.
This is easy to verify by simply placing a handler Page_PreInitand looking at the properties of the control on the page. You will see that they are installed.
The MasterPage / Page relationship is just a function of how the HTML will be displayed, and containers with the names that everyone lives in.
When the actual compilation of the page occurs, partly depends on how you set up your project and partly perform the function of monitoring ASP.Net files in the application.