Esta es una pregunta difícil de responder. Ambas opciones tienen sus pros y sus contras en mi opinión.
Personalmente, no me encanta leer un solo archivo CSS ENORME, y mantenerlo es muy difícil. Por otro lado, dividirlo provoca solicitudes http adicionales que podrían ralentizar las cosas.
Mi opinión sería una de dos cosas.
1) Si sabe que su CSS NUNCA cambiará una vez que lo haya creado, crearía varios archivos CSS en la etapa de desarrollo (para facilitar la lectura), y luego los combinaría manualmente antes de ponerlo en funcionamiento (para reducir las solicitudes http)
2) Si sabe que va a cambiar su CSS de vez en cuando y necesita mantenerlo legible, crearía archivos separados y usaría código (siempre que esté usando algún tipo de lenguaje de programación) para combinarlos en tiempo de ejecución de tiempo de ejecución (la combinación / minificación de tiempo de ejecución es un recurso porcino).
Con cualquiera de las opciones, recomendaría el almacenamiento en caché en el lado del cliente para reducir aún más las solicitudes http.
EDITAR:
Encontré este blog que muestra cómo combinar CSS en tiempo de ejecución usando nada más que código. Vale la pena echarle un vistazo (aunque todavía no lo he probado).
EDITAR 2:
me decidí por usar archivos separados en mi tiempo de diseño, y un proceso de construcción para minificar y combinar. De esta manera, puedo tener un CSS separado (manejable) mientras desarrollo y un archivo minificado monolítico adecuado en tiempo de ejecución. Y todavía tengo mis archivos estáticos y menos sobrecarga del sistema porque no estoy haciendo compresión / minificación en tiempo de ejecución.
nota: para sus compradores, les recomiendo utilizar el paquete como parte de su proceso de compilación. Ya sea que esté compilando desde su IDE, o desde un script de compilación, el paquete puede ejecutarse en Windows a través de lo incluido exe
o puede ejecutarse en cualquier máquina que ya esté ejecutando node.js.