Eu não costumo colocar o bean inteiro na sessão não…
Seguindo seu exemplo de login que não tem filtro … 
Crio um ManagedBean para representar o usuario
public class UserMB {
private String nome;
private String senha;
// gets and sets
Este MB defino no faces-config com escopo de sessão.
<managed-bean>
<managed-bean-name>UserMB</managed-bean-name>
<managed-bean-class>exemplo.marcelo.gomes.UserMB</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
Em seguida crio o meu MB que vai “representar” a página loginJSP com todos os métodos e atributos adicionais que precisar para esta págia e coloco também o atributo UserMB
private UserMB userMB;
//get and sets
E coloco o UserMB com escopo de request, mas com a propriedade UserMB.
exemplo do faces-Config.
<managed-bean>
<managed-bean-name>loginMB</managed-bean-name>
<managed-bean-class>exemplo.marcelo.gomes.LoginMB</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>userMB</property-name>
<value>#{UserMB}</value>
</managed-property>
</managed-bean>
Nas outras página que precisar acessar/ trocar o conteudo de userMB eu declaro da mesma forma que foi feito em loginMB.
Se alguém não entendeu é só perguntar… tenho um exemplo disso feito no NetBeans 6.7 que fiz para explicar para um amigo meu… se alguém quiser é só dizer!!!
Caso alguém ache que esta tem algum problema diga também… assim vou melhorando minhas soluções 
abraço
Marcelo Gomes