Because there's existing libraries which solve many of the same problems which they inevitably run into and then re-implement them in JS. The "not invented here" mentality has to stop. Unless there's a significant reason to not utilize a library then it shouldn't be avoided. There's no good reason to replicate that functionality.
This is true, but the track record of bugs and poor security inherent in using relatively low-level languages like C and C++ for everyday Internet-connected applications also has to stop.
That doesn't really help you when the platform you run on be it a browser or a virtual machine is written in C/C++ which by implication can be exposed to the same security flaws if/when they utilize unsafe design patterns or idioms. So, all you've done is pass the buck onto Servo/Gecko/Safari. The reality is that you can't make an argument that's ironclad in favor of forcing JS to become the new C. Let JS do it's wonders for the web and let C/C++ and other languages that have great native application tools do their wonders for the desktop?
I didn't say anything about using JS as the alternative. I happen to think it's a rather poor language and that using it for anything other than running front-end code on a web site until we have better alternatives is usually a mistake. But there are a lot more languages out there than C, C++ and JS, and I don't think any of those is a particularly good choice for this sort of task.