I agree there are some serious problems. But a lot of the problems are worked on, like modules. I agree they should be in the language and it looks like they will be in ES6.
Regarding the different languages on the server and client you don't really have a choice. JS is what runs in the browsers. If you want the same on the server the server has to change. Very few people seems to want Java in the browsers again. And you can write gateway systems in Node that then connects to servers further back which may still use Java/C#/Python or something else. This seems to be the natural route for many projects.