Waht are so bit**in' about? As you said, in ASP you had create your HTML.
Also every time a request came to the server. In ASP.NET things are the same
if we consider this, but you have much more control and power over this. If
you would think a bit how ASP.NET works (or IIS or any web server), this
kind of thinking would be self-explainable its a NO GO. How should server
preserve controls? In memory? for 100.000 users that access this
application? Hmmm. I don't think so. Persisting on client side (in any of
possible ways)? Hmmm. Too much data to transfer back and forth... Hmmm. How
else? Database? Server speed limitations... What else could we do?...
ASP.NET saves page state, so data and everything is maintained when posting
back. You have to take care that controls will be created at the given time,
so ASP.NET will be able to work with. Isn't this somehow the same as it was
in the old ASP days?...
Figures...
But beside this. Anyway you look at it, yes every technology has flaws, so
does ASP.NET but it don't think this behaviour is a flaw. At least it looks
quite smart to me.