Fala aí Marco, tudo bem?
nesse trecho: "Analisando o código disponibilizado, percebi que o entityManager nesta classe é chamado através do getEntityManager() do JPAUtil"
Quando você se refere "nesta classe" está falando na classe UsuarioDao? Está dizendo ela não injeta o EntityManager e utiliza a classe JPAUtil para conseguir um EntityManager seria isso?
Manda o código para eu entender melhor sua dúvida e tentar te ajudar.
Respondendo as outras dúvidas,
A anotação @Produces indica ao CDI como produzir algum objeto, através do retorno do método anotado.
Ou seja se eu anotar um método que retorna String com @Produces em qualquer lugar que eu precisar injetar uma String o CDI vai utilizar esse método que eu anotei. (Se eu tiver mais de um método que retorna String anotado com @Produces preciso utilizar um outro recurso do CDI chamado Qualifier para distinguir quando injetar por um método ou por outro.)
Não tem relação com o ciclo de vida do JSF o CDI é inicializado como um Listener de Servlet ou seja ele é inicializado antes da Servlet do JSF.
Como respondido anteriormente não tem como optimizar isso pois não tem relação com a inicialização do JSF.
Espero ter ajudado!