Que legal, ele faz algo parecido com o que eu falei pra você fazer ali na opção 2
Você sabe me dizer se o VRaptor que cuida do ciclo de vida do EntityManagerFactory, como gerenciar pool de conexões, abrir e fechar os entity managers automaticamente e coisas do gênero? Porque se faz, é bem interessante a pegada deles.
Sobre o scan de entidades: por padrão, em aplicações Java EE que são implantadas no servidor de aplicação, isso é feito de forma automática quando você injeta o EntityManager. Ele procura o persistence.xml com as configurações e lê o classpath inteiro atrás de classes anotadas com @Entity. Inclusive, existe uma tag no persistence.xml chamada <exclude-unlisted-classes>...</exclude-unlisted-classes>, que pode receber os valores true ou false e falam para o container se você quer desligar a leitura automática de entidades.
Já no Java SE, você precisa colocar as classes no persistence.xml, a não ser que o teu provider disponibilize a funcionalidade de scan automático (o que é o caso do Hibernate).
Não sei como é o esquema no VRaptor. Talvez tenha algum jeito de configurar com alguma variável de ambiente ou algum arquivo de configurações, se não é ligado por padrão.