Isso pode ser um problema mesmo, mas citando o Klaus:
Eu diria que programar com prevalência é como programar com threads. Se vc não prestar atenção no que está fazendo, vai acabar fazendo caca, independente das suas habilidades como programador.
Então para resolver esse problema, vc tem que lançar alguns postulados:
:arrow: Se vc for usar passiavation, vc vai colocar os seus objetos passíveis de passivação dentro do PassivationMap, e quando vc for pegar o seu objeto de dentro do PassivationMap, vc vai receber um PROXY e não o objeto em si, que pode estar dentro do proxy ou no disco.
:arrow: O seu programa só pode guardar referências ao Proxy e não referencias diretas ao objeto. Ele pode acessar o objeto que está dentro do proxy a qualquer momento, mas não pode criar uma hard reference para esse objeto, caso contrário a passivação não vai servir pra nada, pois o objeto não será coletado e continuará na memória, e pior ainda, ficará na memória e no disco criando uma inconsistência.
Prevalência tem um monte de outros postulados, e se o cara não conhecê-los, e caca na certa. Outro postulado importante:
:arrow: Vc não poderá, sob pena de morte, fazer alterações em seus objetos sem ser através de um Command.
Infelizmente nada impede um programador destraído ou maluco de sair alterando os objetos por fora de um comando.
Outro:
:arrow: Se vai fazer iteração numa lista, vc precisa de um safe iterator (Space4J) ou precisa enviar uma query (Prevayler) para não correr um risco de receber um ConcurrentModificationException.
Mas nada impede o cara de pegar uma lista e sair itinerando. 
Logo a conclusão é: Se for brincar com prevalência, conheça muito bem e aplique a toda hora os postulado, da mesma maneira que se vc for trabalhar com relatividade saiba que a velocidade da Luz terá que ser sempre constante no vácuo, independente da velocidade do observador. Se não é caca !!!