Java EE 6 é realmente incrível. O único problema é que tem cerca de 2 semanas, e há apenas 1 contêiner oferecendo seus recursos - Glassfish.
Não tenho nada contra o Glassfish, uso em todo lugar, várias instâncias de produção, adoro o produto e o projeto.
Dito isso, os detalhes do Java EE 6 não se traduzem em Java EE 5. Alguns sim, muitos sim, mas o Web Profile, Servlet 3.0, os novos tipos de Bean, JPA 2, etc. Esses não estão lá.
Portanto, ao aprender Java EE 6 primeiro, você está simplesmente se restringindo a um único contêiner. Mais estão vindo, mas eles não estão aqui ainda.
Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo, etc. todos funcionam bem com a especificação Java EE 5 (pelo menos aquelas partes da especificação que suportam, Tomcat não tem EJB, por exemplo).
Não consigo pensar em nada no Java EE 5 que não foi transportado para o Java EE 6. O Java EE 6 tornou opcionais alguns aspectos muito antigos e aqueles que você simplesmente não aprenderia hoje de qualquer maneira. O Java EE 6 tornou algumas coisas do Java EE 5 ainda mais fáceis (principalmente empacotamento, EJB Lite, por exemplo).
Aprenda Java EE 5 agora para que possa realmente aplicar o que aprendeu em uma variedade de ambientes, em vez de aprender Java EE 6 agora e descobrir que pode não ser capaz de usar muito do que aprendeu.
Nenhum livro vai te ensinar o que você precisa saber. Servlets, por exemplo, são uma boa base, mas para qualquer coisa maior do que algumas páginas ou endpoint, você vai querer usar um dos muitos frameworks de terceiros, ou JSF, e nenhum livro cobre o núcleo e então um framework no topo por essa.
O tutorial do Java EE 5 é bom para baixar os fundamentos. Minha principal reclamação é que eles não mostram o código-fonte. Em vez disso, eles esperam que você apenas baixe e execute-o. Não é discutido no tutorial. Descobri que os livros Use a Cabeça são muito bons.
Para a programação da web, Servlets brutos são importantes o suficiente apenas para entender o ciclo de solicitação / resposta, mas você não precisa de um conhecimento profundo para dar um salto para uma estrutura de terceiros.
Sou um grande fã de Stripes para uma estrutura de ação (em vez de uma estrutura de componente), e o único livro Stripes disponível é excelente (tornando sua escolha uma escolha fácil).
Não posso sugerir um livro de estrutura de componentes e, na verdade, não recomendaria um imediatamente. As estruturas de componentes realmente enterram as estruturas principais de solicitação / resposta HTTP. Eles os enterram por um motivo e eles ganham valor por enterrá-los, mas acredito que para ser eficaz você precisa ter um entendimento sólido desses conceitos desde o início. É por isso que não sugiro aprender uma estrutura de componentes primeiro.
A estrutura JAX-RS REST, incluída no Java EE 6, mas prontamente instalável no Java EE 5 ou em qualquer contêiner de servlet, é excelente. Indiscutivelmente é o que Servlet 3.0 deveria ter sido. Mas não conheço nenhum livro sobre isso.