> Because most webapps do not need to be optimized for performance, but rather for ease of maintenance.
I don't see how this conflicts with asynchronous I/O unless you're limiting yourself to Twisted/Node.
> Asynchronous I/O is best suited for handling a large number of concurrent connections. However, in the majority of cases these connections are mostly idle, with bursts of activity occurring whenever a message arrives.
This is exactly how you write an Erlang application. Erlang supports asynchronous I/O.
Your viewpoint is accurate if you limit yourself to many of the mainstream languages that are simply terrible at concurrency, but I think this is only temporal. As more work goes onto web apps synchronous I/O simply isn't going to cut it (as many people running popular websites already know).