Are you sure its a "circular dependency", I wouldn't expect a circular dependency to work. What you have posted may be a multiple dependency. I can't tell from what you have posted.
Agreed that there is a lot that needs to be cleaned up. Including the dependencies upon things which should not be in the surf libs. As I've said before on these forums someone needs to take a big axe to alfresco and smash it to bits :twisted:
On a more practical note if you can identify enhancements to improve things then please contribute them via JIRA. What is important is a clear focus, saying vague things like the architecture is a mess will go nowhere.