Well, according to the spec:
JSF.5.4.1
In the case of a managed bean placed in view scope, methods annotated
with @PreDestroy must only be called when the view scope is destroyed.
See the javadoc for FacesContext.setViewRoot().
So if you're not seeing that behavior, then that's probably a bug.
I've taken the liberty of filing a bug on this so the Mojarra team can check it out (bug 1351).
[Message sent by forum member 'driscoll' (jim.driscoll_at_sun.com)]
http://forums.java.net/jive/thread.jspa?messageID=366671