Olá Rafael, tudo bem?
Então JSP
é somente a camada de visualização como você mesmo disse. Ela é comumente utilizada com frameworks MVC Action based
como SPRING
, VRaptor
e etc...
JSF
é um framework MVC Component Based
que usa na sua camada de visualização algo chamado de Facelets
(basicamente arquivos xhtml).
Em ambos os casos é possível utilizar HTML 5
.
Agora a escolha entre frameworks Action Based
ou Component Based
, sempre gera bastante polemica.
Eu utilizo os dois, e sempre avalio qual o problema eles resolvem melhor.
Frameworks Component Based
são melhores em cenários onde você tem que desenvolver um sistema, com bastante formulário e precisa manter bastante o estado na tela. Ele geralmente é comparado com sistemas desktop, pois a ideia dele é trazer algumas partes boas do mundo desktop para web.
Já Frameworks Action Based
são nativamente voltados para aplicações STATELESS
(que não precisam manter estado) que é o padrão da WEB. E-Commerce é um bom exemplo onde na MINHA opinião Action Based
se sobrepõe ao Component Based
.
Espero ter ajudado!