In one of my project I am using spring, hibernate and jsf (facelets), obviously spring manage all dependencies and jsf manage navigation rules.
It's all well decoupled and maintanable, I believe it's a good arquitechture.