Well, my answer to the asp.net controls thing is simple for me, but maybe in other peoples cases not so easy. Lets say you have a form where people sign up to your site. All fields are filled correctly and the data is posted, well for me in asp.net, the values of the fields are all maintained in viewstate while i handle the button click event, if there is something i do not like about the inputted info, i simply throw an exception and report back some errors and i don't have to worry about re-putting back the info they submitted because it's all contained within the viewstate.
I see what your saying, and the example i gave is the very basic one, but let me give you one more that i feel helps me in saving time.
Lets take the repeater control for a moment. Now let me first say i am not the best web designer, we have other resources for that, so when i get a mockup, and need live data applied to it in a repeating fashion, i will use a repeater obviously.
The main "thing" i feel repeater gives me is that i do not have to convert the html into string format using a string builder or appending text onto a string object. I simply wrap a repeater around the key html that will be looped and repeated.
Simple scenario, lets say we want to completely revamp the way we are displaying the data. Well, i would then have to get the mockup back from the design guy, parse it to my liking then put it in string format so that i can display it. Well, if i used a repeater, i don't have to waste time creating strings out of things because the contents remain in the .aspx or .ascx portion not in the code. Also, for those who use vs.net, you get intellisense which comes in handy.
This are my reasons for liking asp.net, i'm sure they don't appeal to all. If i knew more about php, i could make a stronger example, but unfortunately i've only seen a little bit, and from what examples i saw from a live project, it looked like pure spaghetti code, maybe that was the best solution, although i wouldn't know!
Flyin