I believe that in order to use an ORXM tool like hibernate, you do need to know SQL very well. You shall be capable of fine tuning the fetching strategy, caching, lazy loading, session in view and other hibernate concerns. You need to pass a learning curve. It takes at least a book to read assuming that you know the fundamental of JDBC. And It is not easy. It is a wrong assumption that we can skip JDBC with hibernate.
I believe that annotation is not essential for a tool like hibernate ORXM or Spring IOC Container bean declaration. Annotation is a political tool that is attractive for Hibernate and Guice teams. It is obvious that annotation is useful for some problems. I myself use it. But I don't see that any difference in functionality and architecture enhancement when it comes to choosing hbm files versus annotation. Annotation has its own restrictions and problems as well.
There is a trade off that we face everyday. As we proceed, we write less lines of software code. But codes are getting more conceptual. If people cannot learn the new concepts, I believe that technologies will be thrown into the trash. Look at the demand out there in the Western world for these conceptual technologies. I believe that we need to learn more to write less. After all we are not here to repeat ourselves.