I've never come upon this scenario. But have you tried outjecting the FacesMessages instance into the session context (rather than creating another session-scoped SFSB)?
I haven't tried the above, but give it a shot...
Specifies the scope to outject to. If no scope is explicitly specified, the default scope depends upon whether the value is an instance of a Seam component. If it is, the component scope is used. Otherwise, the scope of the component with the @Out attribute is used. But if the component scope is STATELESS, the EVENT scope is used.