Estava com essa dúvida, e ainda estou , mas já esta mais claro pra mim, o que entendi pelos post, tutorias etc é o seguinte:
não pensando em mvc ainda, no jsf existe a view, o bean, e sua classe normal Java, que pode conter o negocio de sua aplicação e as anotações para acesso ao banco. Pensando nas camadas MVC, algumas pessoas em fóruns, falam que as sua classe de negocio, a dao, poderiam ficar no pacote MODELO. As páginas xhtml fica no pacote VIEW, e os beans, no caso o backbean, fica no pacote controle, enfim, pelo que vi existe mais de uma forma de organizar sua aplicação de acordo com seu entendimento e gosto. O conceito de controle no jsf pelo que sei é que ele faz a interligação do view com o modelo, e no meio disso fica o bean ou backbean. O MVC diz pra você com os componentes da aplicação interagem, e não como separa as camadas. Então você não deveria usar o MVC pensando em como separar as camadas. Você precisa pensar em como os componentes de sua aplicação se interagem e apartir disso separa seus pacotes.
O método que estou adotando é fazer tres pacotes, modelo, dao e view.
No modelo eu deixo minha classe java com os get e set, e as anotações do banco. Observe que essa classe em si tem o conceito de um bean. Ela pode representar um bean. Mas o que eu faço é o seguinte: deixo essa classe so com os getrs e setrs e as anotações do banco. Ai no pacote controle eu criu uma classe java que vai ter a anotação manageBean, e instancio nessa classe um objeto do modelo, e coloco os getrs e setrs desse objeto , ai nessa classe eu faço os métodos que vão pega as informações da view e passar pro modelo.
No pacote dao eu crio somente o acesso ao banco de dados para cada modelo.
Da classe no controle anotada com mangeBean eu chamo esses métodos da dão para fazer as operações.
Na view faço as paginas xhtml, preenchendo o objeto do modelo que está no pacote controle. É isso, fico confuso, mas a realidade é que muito confuso mesmo, mas pode te ajudar em algum ponto. Alguém corrija algum erro ai por favor.