FetchType.Eager e FetchType.Lazy - Hibernate

Olá pessoal. Estou com uma dúvida cruel no Hibernate. Leio em vários lugares que a definição de FetchType.EAGER faz o relacionamento (tanto único quanto coleção) ser carregado de uma vez no primeiro select. O problema é que eu só consigo reproduzir isso utilizando join fetch. Se eu usar somente FetchType.EAGER ele faz dois selects de uma vez ao invés de um.

@Entity
public class Movimentacao {
	@Id
	@GeneratedValue
	private Integer id;	
	@ManyToOne // padrão EAGER
	private Conta conta;

EntityManager em = new JPAUtil().getEntityManager();
		List<Movimentacao> lista = new MovimentacaoDAO(em).lista();
		em.close();
		System.out.println("------------lista Carregada--------------");
		for (Movimentacao movimentacao : lista) {
			System.out.println(movimentacao.getConta());
		}

Neste caso: 1 select para a lista e 1 para cada conta.

Hibernate: select movimentac0_.id as id1_, movimentac0_.conta_id as conta6_1_, movimentac0_.data as data1_, movimentac0_.descricao as descricao1_, movimentac0_.tipoMovimentacao as tipoMovi4_1_, movimentac0_.valor as valor1_ from Movimentacao movimentac0_ Hibernate: select conta0_.id as id0_0_, conta0_.agencia as agencia0_0_, conta0_.banco as banco0_0_, conta0_.numero as numero0_0_, conta0_.titular as titular0_0_ from Conta conta0_ where conta0_.id=? Hibernate: select conta0_.id as id0_0_, conta0_.agencia as agencia0_0_, conta0_.banco as banco0_0_, conta0_.numero as numero0_0_, conta0_.titular as titular0_0_ from Conta conta0_ where conta0_.id=? ------------lista Carregada-------------- br.com.caelum.financas.modelo.Conta@11b72b5 br.com.caelum.financas.modelo.Conta@148c8a0

Até onde sei o FetchType.EAGER garante que o atributo marcado com EAGER vai estar disponível, mas não garante que será com uma consulta apenas.