without which you are right, GPL software could only be developed and run on GPL operating systems.
Not really, although doing so would make understanding the legalities a lot easier.
But again, the GPL does not presume to replace existing licenses or other agreements a software author is under. Nor does it argue it has the right to do so. Which is why, mainly to accomodate Windows developers who wanted to release and share their work under GPL, that some of those special conditions (which I'd hestitate to characterize as exceptions) got incorporated into the license.
The whole issue of the programming 'tool chain' and how existing non-GPL developer licenses may impact the GPL has been a very active discussion topic over the years. And there have been some who gave argued that the entire chain needs to be under GPL in order for GPL to work. But saner heads have prevailed, and a compromise has been reached that seems to work quite well for most people.
Or should, unless you're the sort of person that's trying to find yet another loophole to get around it.
Basically, when you GPL your work, only your work is under the license. You're still bound by the terms of any other licenses you are already under for compilers, tools, libraries, dlls, precompiled included binaries, etc. GPL doesn't override any of that. All it covers is your
code. It does not force itself on anybody else's code with one big exception: and that's any code that incorporates your code downstream.
And in those cases, the rule is simple and very clear. If you incorporate any code that is licensed under GPL in a downstream project - and if you distribute that project to the general public (whether for free or for a fee) - then you are required to also share your code under the same terms as the GPL code you incorporated into your project.
And while the license itself doesn't split hairs over how much source needs to be incorporated before a GPL violation occurs, the FSF isn't in the litigation business. It has always used reasonable standards and common sense in cases where it does get involved in attempting enforcement actions.
So yes, while 'technically' only one short line of GPL'ed code needs to be present to make a 1 million line program also subject to GPL, you won't ever see FSF taking action on so ridiculous a complaint. Too bad the creators of proprietary licenses don't feel the same way. Companies have pursued smaller competitors and individuals and sought criminal and civil penalties in cases often involving nothing more than single code snippets. One case even argued that the overall structure of a competitor's program amounted to theft of their intellectual property even though not one single line of the actual code was the same!
GPL is not a panacea for all our licensing woes.
But imagine what the IP landscape might be like without something like the GPL around - even if it only served as a reminder that there are alternatives to the legal quagmire we've created for ourselves with software licensing.