It's not a bad idea as far as conventions go. It makes it fairly easy for nearly anybody to distribute interoperable software without having to either register with Sun/Oracle for some sort of key or to deal with the possibility of collisions. I think it's a pretty smart decision to piggyback atop an already extant naming system. Further, it's just a convention - there's nothing in the language design that requires that packages use your own domain names or even domain names at all.
There are plenty of legitimate gripes to have with Java, but I'm not sure that their namespacing decision is one of them.
I remember when I was first learning Java many years ago...about this convention and asking why one would use this as a namespacing convention. Even back then domain ownership was fast and fleeting and it never seemed to serve any particular purpose. I think because it was always couched that the Java namespace convention was supposed to help you track down the originator of the code even without documentation that I always found it strange. Now with this change, vast swaths of the primary codebase no longer map to the originator of the code!
Are namespace issues such a big deal in other languages that something like this is needed? http://search.cpan.org/ seems to muddle through more or less okay without it. (But then it requires a centralized namespacing system as you pointed out).
So yeah, I do see your point regarding leveraging an existing system. It has just always struck me as a bit oddball.
Fair point, but remember that this convention predates modern search engines. I'm sure you remember what the Internet was like in 1995, for example, and how difficult it could be to find precisely what you were looking for. That's the world Java and its package convention was born into, and in that world it made more sense for the reason you pointed out.
That said, at least Sun was smart enough to not package core classes as com.sun.* - they reserved the java.* packaging for core language constructs, so at least that's not broken.