JSF is about Inversion of Control and Managed Beans. So normally you would not instantiate beans of session scope or any other scope inside of a JSF managed bean. Instead, you'd define the session scope bean as a managed bean and inject it as a managed-property into the target bean using either faces-config.xml or the equivalent JSF2 annotations.
One of the virtues of IoC is that the wiring together for 2 beans is all done via basic POJO set/get methods which are invoked by the JSF bean manager according to faces config rules that you specify.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.