You're dead-on right about everything you've said, except this bit. I think the biggest hurdle is still the fact that developers create really ugly interfaces in html. Too much focus on functionality and not enough time spent making it pretty.The 'web' browser sitting on most computers is perhaps the most flexible and most amazingly underused component for GUI-based development.The single most enduring circumstance that prevents serious progress in this area is the lack of a language-neutral and credible mechanism for interprocess communication between the browser GUI front-end and perl. (or whatever your language of choice is).
Nobody wants to see an html page flash and render every time they hit a submit button, we want to a seamless clean interface that is just there and just works. Gmail is a great example.
I personally have found that this is the biggest reason I like the google mail interface. It works like a real application. I click on a message and it comes up. I click on reply or forward and I can start typing right away.