There's almost nothing you can't do in annotations that you can in XML. I can't even think of anything atm. You can try conforming to JPA but I've found the JPA API is quite limited. Still, that just means you use non-standard Hibernate specific annotations.
There are several comments that state that hibernate annotations pollute your domain models, but these are tightly coupled to your database layout anyway. In any code that is not database driven you would need to build an intermediate layer anyway. In fact, IMHO a lot of web apps should use intermediate value objects that copy only the data required to the presentation layer. Instead, many use the open session in view antipattern.
Lastly, while xml configuration is flexible, common practice shows that whenever we're editing the xml files we're almost always editing the java source files as well. This is just another argument for moving the configuration closer to the objects, i.e. into the annotations.