Boa noite.
O hibernate nada mais é que um provider, mais uma camada de software que você adiciona a sua aplicação.
A ideia de se utilizar JSF e EJB3 eu acho excelente, trabalho com essas tecnologias e acho produtiva e e interessante. O JSF no meu ponto de vista oferece uma visualização amigavél e fácil de se programar e você pode unir isto ao RichFaces, IceFace e por ai a fora.
Além do JDBC, eu indico fortemente para um sistema web você utilizar nao somente um container web como por exemplo o Tomcat, mas um servidor de aplicação como o JBoss e deixar que este AS seja responsavél pelo gerenciamento do seu pool de conexões, afim de evitar inúmeros problemas.
Então ai vai a minha humilde opinião, faça o uso das tecnologias Java Server Faces (JSF), Enterprise JavaBeans (EJB) e JPA (Java Persistence API) e como provider para utilização do JPA use hibernate.
O JPA é uma forma de persistência do Java muito interessante, onde você utiliza Entity e etc. Dê uma boa pesquisada na net caso lhe interesse, há inúmeros artigos sobre esta(s) tecnologia(s).
Aqui um link sobre JPA: http://java.sun.com/developer/technicalArticles/J2EE/jpa/
Abraços.