Hay dos aspectos en su pregunta: el back-end y el front-end.
El back-end maneja tareas tales como consultas a la base de datos, manejo de estado (por ejemplo, inicio de sesión del usuario) y representación de la página, mientras que el front-end maneja la interacción, apariencia, diseño, etc.
Para el front-end no tienes muchas opciones. La mayoría de los navegadores solo admiten JavaScript (o un subconjunto estrechamente vinculado de ECMAScript) y HTML, CSS son sus únicas opciones para el marcado y el estilo.
- ¿Cómo se almacenan las páginas web en los servidores?
- ¿Existe alguna herramienta que envíe el contenido web a mi computadora o mi Kindle?
- ¿Se le ocurre un uso del patrón Observer en una aplicación web CRUD MVC?
- ¿Qué debo aprender primero para convertirme en un desarrollador web back-end?
- Cómo encontrar probadores beta
En cuanto al back-end, hay una variedad de opciones, como te estás señalando a ti mismo. JavaScript ha ganado algo de adopción, especialmente después de la introducción de node.js.
No hay desventajas ni ventajas específicas al seleccionar JavaScript como lenguaje para implementar el back-end. Los pros y los contras están relacionados con el marco en el que se basa el back-end y las habilidades que tiene a mano.
Una pila de Node.js, MongoDB, HTML, CSS, Backbone, jQuery es ampliamente adoptada y se considera estable de usar. Sé a ciencia cierta que el servicio de intercambio de archivos Ge.tt | Gett Sharing está usando una pila similar y están muy contentos con esto.
Entonces diría que sí, es una pila suficiente. Para pros / contras, consideraría esto con respecto a qué tipo de aplicación estoy construyendo. Elija la tecnología que se ha demostrado que funciona para dicha arquitectura.