shaddim: the repos. Means, no recent games no photoshop, no cad software etc. Even the old loki games are broken now.
No more so than old MSDOS and Windows games are broken in modern Windows too, and GOG updates them to be compatible with current Windows systems, and uses the DOS emulator to provide backward compatibility for some of them. There is no reason that similar backward compatibility strategies could not be used for old Linux games. To get old Loki games running would basically require creating a compat-glibc-x.yz package for the version of glibc that the game is built against, and perhaps a few other dependencies the game might need. Quite likely a lot of the games have the same dependencies so someone could even create a loki-games-compat meta package that depends on (requires) the complete set of known compat packages for the various Loki games. This isn't something the average gamer could likely do on their own, but then neither is manually setting up DOSbox, ScummVM or other things that GOG does to get old games to work on new versions of WIndows.
There are a few additional problems that could arise such as games using the X11 DGA extension and it possibly not being supported on a modern X server, but there are totally ways to provide compatibility for those type of things too for the most part. (I'm a former X11 hacker.) Another method is using wrapper libraries that translate old APIs no longer provided through a layer to something that is now supported. For example, it is likely possible to handle DGA in this fashion and some other legacy X server extensions that aren't supported any more. Since the source code for everything is readily available, as are historical binaries, it should be easier to provide such backward compatibility for old games even if it means using a virtual machine and installing a miniature legacy Linux OS into it just for running the game - much like DOSbox is used in Windows. It'd essentially be LinuxBOX. Another way is using a chroot jail with older legacy packages in there. Lots of options.
I only pointed this out because I feel that Linux is no different than Windows in respect to making ancient games work and new systems not being compatible thus requiring backward compatibility packages etc. be added to the system to get them to work.
On your other points, there are differences from distribution to distribution in which libraries are provided and the compatibility between them, window system support and other factors that do indeed make it more difficult for 3rd parties to provide a single build of their software that works on all Linux systems, and that is definitely one factor that causes companies to resist the platform sometimes. Ultimately though it's all about money, and when there is enough money perceived to be made by supporting Linux despite any shortcomings they may perceive it to have, they'll throw money at the problem and come up with something, whether it is universal support, support for a list of specific versions, or rolling their own custom Linux based solution such as Valve's SteamOS.
The problem is that the end user/gamer/customer just sees what they want to have happen - Linux support for example, and they do not really understand the true amount of effort on the part of the software developer to both port the code to the platform (which might be easy or might be challenging due to project specific decisions that pre-exist), and to provide adequate customer support for it for the plethora of customers out there all using widely divergent systems, many of them with custom home built packages and whatnot. It is a lot more complex of a problem than most people realize and it can mean a company has to have a large Linux support staff (both technical support and development, quality testing, etc.) compared to the number of units they sell on the platform compared to the Windows, Mac, Xbox, etc. platforms. That's not an insurmountable problem of course, but there has to be enough actual customer base willing to spend money to break through the threshhold where hiring that amount of employees to support it, QA test it on 10/20/30/50 Linux distributions can be viable. I don't think most companies are yet prepared to do that, but we're seeing some of them dip their toes in the water to see if they can find a way to tap into this part of the market in a way that is business-viable to them.
Valve is probably going to be the one company that cracks the code so to speak and figures out how to tap into the Linux market and hopefully find a profitable business model. Others are already waiting on the sidelines to try and do the same from what I read. I believe that Valve will be successful, will cause other companies to try to emulate their success, and eventually it will fan out from there. I believe that the results of Valve's efforts will help to standardize things to a degree and iron out some common problem areas. Possibly the creation of a game-centric thing like the LSB. the LSG ;o) (Linux Gaming Standard). Something like that would allow other platforms to add compatibility to that standard and give 3rd parties a common base to work from.
Eventually somewhere in that time matrix would be GOG coming to the platform too I think, but I think GOG really has their hands full right now growing their existing business on the existing platforms and while I could be wrong, I think GOG at the moment is likely to be more profitable by focusing on what they already do good - bringing more old games on board the existing platforms. It'll be easier for them to bring games to Linux when bigger companies with a lot more muscle and $$$ help to solve the platform related compatibility issues and generally improve the Linux gaming ecosphere. GOG can then coast in with their Linux strategy and where a market of games has proven viable already.
I'd rather see GOG wait and do this when they personally feel it is the right time than to rush into it and fail - like Loki and just about every other company has so far. Let Valve work out the tough bits, then ride their coat tails I say - much safer and much less costly research and development.
shmerl: It's not configured for Windows out of the box. You need to figure out how to modify makefiles and so on. Depending on the C++ compiler you use it can be different. And yes, POSIX is not compatible with Windows in general.
Windows NT and the Windows OSs that are the decendants of it (XP/Vista/7/8/Server 2xxx etc.) all have a POSIX compatibility layer. That layer is used by projects such as Cygwin, mingw etc. to bring UNIX APIs to Windows. It has its ups and downs but it is there and it does provide some compatibility. The reverse isn't true of course, Windows compatibility is not part of POSIX, but the equivalent in the other direction would be wine for binary apps, or winelib for building Windows apps to native executables. Neither is optimal compared to true native ports but then the same is true the other way around - using the POSIX APIs in Windows to port Linux software to Windows instead of doing true Windows ports.