Salvar/recuperar estado da sessão e objetos JSF

Imagine que eu tenho um fluxo com 20 páginas, na primeira o cara faz o login, depois preenche alguns dados (que serão salvos em objetos)… etc

Teria como, por exemplo, na décima página eu salvar o estado completo, a sessão e valores nos objetos para num futuro recuperar esses valores sem ter que passar por todos os fluxos novamente?

Possivel é.
Mas não creio que haja algum recurso (class, metodo, framework) que já faça isso pra vc, então creio que vc precisará implementar isso como uma funcionalidade da sua aplicação.

Beleza.

Mas como obter todos esses valores? existe alguma variável que pegue o estado da sessao e dos objetos ou tem que pegar objeto por objeto ou salvar?

ou seja, tem alguma forma de pegar tudo (sessao + objetos) e salvar, por exemplo, num arquivo e depois recuperar de lá?

Vc poderia persistir toda a HttpSession, porém acho isso meio complicado por conter dados demais que provavelmente não seriam úteis.
Eu já vi aplicações que persistem toda a HttpSession e aplicações que possuem um mecanismo pra pegar os dados relevantes da sessão e persisti-los, acho a 2ª opção melhor.