Actually, I'm not 100% correct on that point either - so long as the source is distributed at the same time as the binaries, then they've discharged their obligations under the GPL so we were actually both right.
Yes, Oracle can limit who they provide the source to, but only if they supply the source at the same time they provide the binaries (I don't personally know if they do this), otherwise the GPL requires them to make the source available to anyone who has a copy of the binary. Yes, Oracle can charge for supplying the binaries as a commercial transaction, but the sources need to be supplied at a reasonable cost for shipping. Yes, Oracle can choose who to do business with and so have the right to not sell the binaries or distribute the source to anyone other than existing customers.
So, to answer the question in your subject line - *this* is exactly why people misunderstand the GPL. Of course, it serves it's purpose, and if the world hadn't been taken over by lawyers it would probably be a lot simpler, but surely there's a better way?
Basically, the GPL does give Oracle the right to do exactly what you say. You were right, I was right, but the Devil is in the details and apparently even the combined nerd-quotient of Slashdot doesn't get it right first time.
On the plus side - I've got a slightly better understanding of the GPL now.