A reason why games don't work on Linux is because Linux is not uniformed. There are countless versions of Linux. Among each versions, such as Ubuntu, there are A LOT of sub-versions. Some of them receive longer term support from Ubuntu, but most are unsupported (meaning you deal with any issues you face yourself and only blame yourself if you screw up).
Also, one thing Linux does is every now and then, the Operating System is remade from scratch to improve itself. With being open source and such, then every Linux can benefit.
Making a game for PC is already a nightmare. EVERYONE has a different hardware. It might be the same PC model, but some pieces might be different. Some build their PCs from scratch, some buy them. Some play on laptops, some on desktops. A game on a PC usually involves a lot of testing to make sure as many players are able to play them as possible. The only constant is Windows operating system. You got only 3 major versions to consider: Windows Vista, Windows 7 and Windows 8. XP is about to bit the dust, so a lot will not test it anymore. All three versions are base on the same core programming, which allows a better uniformity. This means that because of Windows, you can only state simple hardware requirement, such as graphic card, RAM and processor. With Linux, you need so much more both hardware and software and you need to do it yourself.
Now, just imagine developing a game for Linux. Countless operating systems and countless hardware settings. You just can't test that much possibilities. So you have to restrict. If Linux is to be stable enough for game developers, that means more restrictions for Linux and Linux is an unrestrained operating system. In other words, for games to be released on Linux, you need Linux to stop being Linux. Linux will then stagnate as games would no longer work properly if not. If Linux stagnate, then it will just become another Windows-like operating system.
Finally, SteamOS is based on Linux. If it get properly commercialized, then Steam will keep it the same, almost regardless of future innovations Linux might bring. At some point, it will only be SteamOS and won't have much to do with Linux. This means just a new player in the operating system market. If SteamOS is kept free, then it doesn't generate revenues, only expenses for support and development. Will Steam be able to afford it? Will Steam be able to compete against Windows and Apple? I don't know. I don't think so, but I don't know. I do think it is more likely that if SteamOS does something truly good, then Windows and Apple will copy it.