Annotations ou XML?

Estou iniciando os estudos em Hibernate, o EJB 3.0 trouxe a JPA que define uma API para ORM que usa majoritariamente annotations.
Vejo que o Hibernate 3.x suporta tanto a abordagem antiga de mapeamento por XML quanto de annotations do JPA.
Apesar de saber que utilizando as annotations do JPA estou tornando minha aplicação mais flexível caso queira modificar meu framework ORM para algum diferente do Hibernate (fato bem improvável), porém mapeando meus objetos persistentes no próprio código das classes deixou as classes estremamente poluídas e confusas.
Quando se tem apenas uma, duas ou até três anotações ainda vai, mais quando se tem anotações grandes e em excesso a legibilidade fica péssima, sem falar que eu estou de certa forma pondo código de banco de dados junto com minhas classes de negócio, eu acho essa abordagem um tanto quanto esquisita, e estou fortemente inclinidado ao mapeamento antigo do Hibernate através de XML, porém como estou iniciando nisso tudo gostaria de ouvir a opinião de vcs.
O que vocês me dizem com relação as questões levantadas?

Desde ja agradeço.

Ola, aconselho você a usar as anotações ao inves de mapeamento via arquivos XML.
As anotações permitem que você tenha mobilidade/independencia de framework de persistencia usado pela sua aplicação. Um exemplo classico pode ser as anotações feitas para o hibernate, uma vez voce usando as anotações do pacote “javax.annotation” (algo assim) voce pode usar como mecanismo de persistencia tanto o HIbernate como o JPA, porque o principio das anotações são semelhantes.