Naming a bean just associates a default bean name with the class. Default would be to take the simple classname and convert the first letter to lower-case.
For
JSF to use a bean, you have to define it to a JSF scope. Each of the
J2EE standard scopes (page, request, session, and application) have dictionaries and JSF will construct (if necessary) and store the named bean in the dictionary for the selected scope.
JSF2 added some new scopes, but they're really piggybacked onto the stock J2EE scopes. For example, View Scope is actually Session Scope with the understanding that the bean in question will be automatically removed from the user's HttpSession when JSF navigates to a different View.
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.