You don't even have to share the changes with the unwashed masses, or even the original author, just the people you sell/give the resulting program/service too. Of course they are free to distribute the changes more freely, the license explicitly states it is a breach for you to try block that, but you don't have to.
But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.
Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.
Though in the "a company or other organisation" situation IIRC your internal users count in the same way so far as the GPL is concerned so you should make the code available to them on request if you don't already and they are free to redistribute under the terms of the GPL. Another important caveat is the "upon request" part: you don't have to release the source to anyone unless explicitly requested so you don't have to release it automatically upon releasing a binary.
Of course if you just use the results for your own needs/entertainment there is no requirement to release anything at all.
But it is a restrictive license. Its "plague"-ness comes from its incompatibility with other licenses. Or at least, in the case of ZoL/CDDL and Linux/GPL, the crippling practical realities of the resulting kernel module binaries that are a derived work trying to impose restrictions on each other. That's why you can find precompiled modules on the ZoL website, but never in a distro.
That's a legitimate criticism, but as you say, also its defining feature.
If you make changes you must share the changes does not equal Plague Like.
GPL is the most used and misunderstood license. It is more complicated now than I wish it was but it has given birth to so much. I prefer it to BSD or MIT due to the share a like nature of GPL.
http://www.gnu.org/licenses/gpl-faq.en.html