if a little freedom to use and modify software in any way is good, more freedom would be better.
That's where you misunderstand Stallman's philosophy. Modify "in any way" is not necessarily good, and can be used for evil. He wants software that is modified only in ways that require others to be able to modify your modifications. That's the whole point of the GPL, copyleft system. "You can have this software, but when you distribute it in binary form you must provide the source code for it and any derivative works." If he was fine with "in any way" he'd have written the BSD license, where you can do anything you want with the source code from a project except prevent others from using it. BSD users then just hope those who modify their software will contribute back out of the goodness of their hearts, but they could just take it, close it up, give the original devs the bird, and go right on doing what they want.
They mostly don't. And it's easier to get your boss to let you use a BSD project as the basis for your new product because they won't be forced to release their source. And then once the boss sees down the road that it won't hurt their offerings to give back, it'll come around. But sign on to the GPL and there's no changing your mind. It's "viral."
The problem with BSD type licenses is that once you get big enough, and get everybody hooked on your ecosystem, it's much easier to give everybody the bird. That was the issue with GCC. Apple and pals wanted to build closed or less-(Stallmanesque)-free* tools on top of GCC..."oh but we'll also totally contribute to GCC!" Well, sure, but as you build more and more stuff it's going to overwhelm and drown GCC until GCC no longer really exists as a free compiler, but as a happy little open thing supporting a mass of closed-off tools under Apple's control.
This is kind of what Apple did with OS X, which they forked off BSD. At first they made huge contributions to BSD. And using OS X was really a lot like using an open source OS, except for Apple's proprietary stuff on top. You don't except them to open up Safari, or Mail or something. But as more and more pieces are built on top of the OS, they are closed, to the point that now, yes, OS X is "based on BSD" and they contribute to the kernel itself, but the vast bulk of what makes up OS X is closed and proprietary.
The same thing is happening with Google and Android. Aw man, this is great! The Linux kernel is running on like 85% of smartphones and Google is totally contributing stuff back to Linux!** But, only the kernel parts themselves are GPLed. The farther you get up the stack, the more closed it is, and the closure is creeping down. Obviously their apps on top are closed (GMail, Google Play. Chrome is mostly OS released under the Chromium project and based on WebKit). But they're sure not going to be putting out more open top-shelf apps. The libraries were BSD (or similarly) licensed and they've been moving towards more controllable licenses in general, and they can close off whatever they do at any time. Remember, with BSD, there's no requirement to publish your changes. Tomorrow they could say "pfft, closed!" and never release another bit of source for one of the libraries (many contributions to which came from others) and there's no recourse. They just released a new runtime (ART? I think?) I don't know how open that is, but I wouldn't be shocked to learn it's closed.
The MO is basically "embrace, extend, extinguish." A big company takes an open source project, uses it as a launching point to get way ahead in development, and then as they gain market share and people become dependent upon their ecosystem, slowly close it off, replace more and more open source parts of the system with closed parts, until basically it's all closed and under their direction.
Stallman doesn't want to see that happen, and he's not wrong. People whine that "Ugh, Stallman, if you weren't so hard headed we could totally have had Apple's help with GCC!!" Sure. For now. But Stallman's playing the long game. The cost is too high. Candy today, chains tomorrow.
This is the difference between Open Source (a design methodology) and Free Software (a social movement). Yes, the GCC open source project would be a more functional and higher-performing piece of technology with Apple's contributions. But it would be less Free, so, no, fuck it. Principles first. Greenpeace isn't interested in collaborating with Japanese whalers on more efficient engine designs, either.
* BSD adherents take issue with Stallman's use of the word "free," as they believe software that you can do whatever you want with, even if it means making it less free later, is more "free," as it comes with fewer restrictions. To me, I think of "free" as a verb, rather than an adjective. Stallman, FSF type of "freedom" is about liberating themselves and others from restrictions, now and in the future. BSD "free" is an adjective, meaning "permissive." You're permitted to do whatever you want, including remove liberty later.
** Kind of. Google's Android kernel code is totally open. But it's only very slowly and awkwardly being integrated with the main kernel tree because it's not particularly applicable to the general use cases of the kernel. There's a roadmap for integration, but it's slow and there's politics involved because kernel devs didn't think Google would actually maintain their code. So it's kind of like "hey, here's this new stuff for kernel 3.10, enjoy!" and then never update it again, and when it needs an overhaul for 4.x they're nowhere to be found, and the current maintainers are left updating code that only really benefited Google anyway. But Google's hired people to address that, so things are proceeding.