Several years ago, I met with Steve Jobs, who was looking for some alternative to making the Objective C front end free software. (This may have been due to worries about being hassled by Stepstone, rather than a desire to be uncooperative.) He asked me if it it would be legal to ship proprietary .o files to the user and have the user link them with the GNU compiler.
At that time, I envisaged the legal ramifications like some others who have recently posted on this list, so I did not see a basis for saying they could not do this.
But at the same time, I realized that it would not bode well for the GNU project if such a thing were permitted. So I responded, "I will have to check with our lawyer."
It's a good thing I did, because when I checked, I found that there was a basis for objecting to this plan. Such .o files would have implied the presence of the GNU compiler, linked with them. They would be, in effect, a way of distributing a larger program which implicitly includes the GNU compiler; as such, it must follow the terms on the GNU compiler.
I told NeXT this, and NeXT decided there was no alternative to making the Objective C front end free software. So now it is available to all of us as a part of GCC.
Note that this is not a matter of copyrighting an interface. The .o files that NeXT planned to release would have used one of the (internal) interfaces of the GNU compiler, but that was *not* what the FSF objected to. Our objection was because the use of these .o files implied linking them with the GNU compiler--the program, not just an interface.
If it were possible for a company to get around the GPL simply by dressing up changes or extensions as "separate programs that the user might link in", then the GPL would be a paper tiger. (True, we often print it on paper, but...) So it is vital for the FSF to object.
If we made this a request rather than a legal demand, some people would comply as a matter of conscience. But many others who would not. If I had told Jobs, "It is legal, but please don't," I doubt he would have heeded the request.
Many improvements to GNU software are contributed by, or funded by, companies. If they could make these improvements proprietary, many of them would. I consider these companies unethical (because making proprietary software is unethical in general), but they don't share my ethical views, and they don't feel they should forego profit for a mere request from the FSF.
The only way to make sure these improvements are free software is to make it hard to make them proprietary. That's what the GPL is for, and to make it work right, we must not permit getting around it by "having the user do the link."