La risposta alla tua domanda è NI....
nel senso che il bean in view scoped viene reinizializzato se:
1) Avviene una navigazione con jsf-redirect=true
2) La view che ha attualmente invocato un action oppure ha richiesto l'accesso ad un qualche proprietà del BB (metodi get) è diversa dall'ultima view che ha invocato il BB.
I BB in request scope vengo sempre e comunque reinizializzati ad ogni accesso.
Sul perchè il @PreDestroy nn ti venga invocato cosi ad occhio nn te lo saprei dire, servirebbero altre informazioni come implementazione di jsf usata, application server usato, un esempio di view e bb in cui è presente il problema.