Just admit it. Most of the challenges in the frontend development are only there because of a horrible overengineering of this entire stack. It was supposed to be easy.
The Web is a full-spectrum application delivery mechanism that allows for completely untrusted, actively malicious programs to be run, and it evolved from a mechanism to display static documents. Of course it's going to be strangely designed.
Given those requirements, your only choices are Java Sandboxed Apps, Flash and the Web. Which would you choose?
> and it evolved from a mechanism to display static documents
It evolved from a deliberately dumbed-down mechanism. Much more sane options existed back than, but for reasons unknown (laziness is quite likely) a choice of a technological foundation was very much random.
I do remember web from its very first days (used to work in an institute with some very tight connections with CERN), and even then I was wondering why such a good idea is going such a non-optimal way.
And, well, it was not quite "evolved", it followed the trends set exactly by this lot - by the web devs. So I cannot see who else should I blame for this mess.
> Which would you choose?
If I had a choice, it would have been Tcl/Tk in a sandbox.