So my question is: is this really a viable concept, to build multi-tier web applications purely on JavaScript?
Yes, although the tools are relatively immature when compared to many other languages.
If so, what would be the advantages of using JavaScript for both the front- and the backend?
- No switching between languages for developers
- Code reuse (e.g. Want to check that data is sane? The same code can be used on the client and the server).