I read something once, but have not been able to find it since, which seemed to indicate that his position on this was that the code should be free, but the content doesn't have to be. So you charge for your game but include the source code with it. The source can be freely distributed, but not the assets: art, maps, sound, etc.
This model has a lot of advantages: users can port these games to different platforms, and they can keep the source code up to date, e.g using newer libraries and making sure it still compiles on the latest operating systems. Not to mention the possibility of adding new features. And in order to play it legally they'll still need to buy your assets.