Ok, ok, ok...I think I know where you are going.
If I'm on the right track, your problem is that you load an entity, and then you need an associated entity, or something somewhere else on the object graph. Well, Hibernate will not load all associate properties in a one to many or many to many relationship by default.
So, if you pass a POJO to GWT, and then ask for that POJO's associated property, well, it will not have been loaded. What you think you're seeing is Hibernate inside of your POJO. I understand that impression. But really, all you are seeing is a placeholder for data Hibernate refused to load for performance reasons. Rather than nulls, Hibernate is putting in a dummy proxy, which you might be seeing as a bizarre Object or reference. Hibernate does this, so if you do need the associated object, and the Hibernate Session is open, it can get it for you.
Did you hear that? IF THE HIBERNATE SESSION IS OPEN. You are getting a partial object graph, closing the Session, and passing the object to GWT. Why not get the object, pass the object to GWT with the session open, let Google Web Toolkit do its magic, and then, close the session. Your problem will be solved.
This is referred to as the "Open Session in View"
pattern. It can't fit into all architectures, but it fits into most.
Hibernate.org Open Session in View Pattern
So, am I getting to the heart of the matter? Are you feeling a bit of forgiveness for accusing Hibernate infecting your POJO's with Swine Flu?
-Cameron McKenzie