Lately posted on Slashdot, an article written by Joel Spolsky mentioned the trouble through which Microsoft went to make each version of Windows backwards compatible. In one case, for the game Simcity, they even changed the way memory handling was done when running that application. You can find additional stories of software tricks that recent versions of Windows have to perform in order to run these bug-dependant applications on the web. After reading the story, I discussed with a couple of friends how weird this was and how Free Software completely avoids this problem.

Just because it hasn't been done doesn't mean it will not be done. Also, Free software does not equal automatic public distribution on the Internet. You could write and sell Free software to a small set of customers. The only thing you have to provide is the source code with your software and give the right to your customers to modify and distribute that software. I think most customers will continue paying you for updates, because you will have the expertise and you will be the trusted source. But if you, for whatever reason, disappear or cannot support your software, your customer will be able to find support elsewhere.

That's extremely naive. There is absolutely zero incentive for a company that develops software to do as you suggest.