After some research, I've realized that Hibernate uses a custom DTD entity resolver that gets the DTD's from hibernate3.jar.
On my case, all was a big confusion, because I've decided to test it shutting down the ethernet interface. But I went too deep, because localhost itself couldn't be resolved. When I just plugged out the network cable, everything worked.
But, the question is, for that custom DTD work, you must use the exact doctype declaration suggested by hibernate. If you use, for example, a SYSTEM doctype, it won't work.