Bom dia Marcos,
Nada te impede de utilizar CSS em qualquer projeto web, seja Java, PHP, etc. Nada te impede também de utilizar o Bootstrap por exemplo, seja em Java, PHP, etc.
Contudo, acho válido esclarecer duas coisas: primeiro, JSF não é mais uma forte tendência, tem seus pontos positivos e negativos como toda tecnologia, mas eu não vejo como tecnologia em ascensão mais, então não a considere como um Padrão de desenvolvimento do Java para Web. Existem soluções mais em uso no mercado, faça algumas buscas no Google Trends, converse com devs lá de fora, você verá que pouco se pede JSF, frameworks MVC em JS tem crescido muito, Single Page Applications, etc.
O segundo ponto, é que o JSF carece de flexibilidade sim na hora de estilizar, e não só já tive como conheço diversos desenvolvedores competentes que sofreram para aplicar estilos muito específicos em componentes criados a partir do JSF. Este framework seria muito útil para criação de página internas corporativas, painéis administrativos, etc, mas dificilmente você veria algum time escolhendo um JSF como framework para um e-commerce (não significa que não exista por aí, existe sim, e alguns ficam legais até), mas realmente te limita quanto a estilização.
Se você vai usar Java para Web e sua solução tem requisitos críticos de design e estilização, considere não utilizar frameworks que influenciam demais na camada de view, logo um back-end Java com um front-end mais puro de HTML 5, CSS 3 e JS terão a flexibilidade que você precisará. Ainda te permitirá usar alguns frameworks de JS como jQuery, entre outros.
Espero ter contribuído, abraços.