MVC + Jsf + Hibernate =?

A árvore do meu projete é esta:

View
LoginPage.jsf
HomePage.jsf
ListUserPage.jsf
NewAlterUserPage.jsf

Controler
controls.UserBean.java
controls.HomeBean.java

Model
model.DaoUser.java
model.User.java
model.hibernateutil.java
model.DAO.java

O arquivo LoginPage.jsf usa o UserBean.java para valiar o login no sistema e guarda o objeto usuer durante toda a navegação até o fechamento do sistema,
pois user guarda todas as permissões dos usúarios.
O arquivo HomePage.jsf usa o HomeBean.java como bean gerenciador, ele remaneja a aplicação para todas as outras ações do sistema.
O arquivo ListUserPage.jsf usa o UserBean.java para listar os dados com filtros e contêm links para alterar e cadastrar usuários direcionando para a página
NewAlterPage.jsf .
O arquivo NewAlterPage.jsf usa o UserBean.java para cadastrar e alterar os dados do usuário.
As classes no pacote Model são usadas para persistência e são ligadas aos beans do pacote controler.

Minhas duvidas são relativamente simples
1-Isso tudo ai esta certo?
2-Eu devo concentrar tudo isso no bean UserBean.java?
3-Qual os escopos que devo utilizar nestes beans?
4-Melhor ainda alguém pode me esplicar a diferença entre session, requeste, application…
5-Criei os beans como session e quando fecho minha aplicação e abro novamente um dia depois ele esta da mesma forma que deixei…
digo, as variaveis os valores dos campos as pesquisas… a duvida é, quando os beans session request… são finalizados? Tenho que fazer na unha?
Achava que ao fechar a página o bean era fechado…
6-Eu usei a pagina de listar e cadastro/alteração no mesmo bean(UserBean) isso é errado?
Porque se para cada operação eu fizer uma página e um bean vai ficar fogo…
ex: NewProdPage - NewProdBean
ListProdPage - ListProdBean
AlterProdPage - AlterProdBean
é melhor deixar assim ???:
NewAlterProd - ProdBean
ListProd-------|

Agradeço a todos desde já.