Hopefully my ramblings make sense and aren't just crazy talk. :)
I think because many libraries rely on OS specific threading, there are very strong limitations in place.
Most projects that use some third-party libraries, and unless all those libraries are specifically cross-platform, the project is no longer an easy build for cross platform.
The closest thing would be if you said, "if you link exclusively to the standard libraries and/or Boost and/or Qt and/or <insert name of cross platform library>
, then packaging it for all desktop platforms as a service would be do-able.
A number of the scripting languages strive to get to this point, of having most of their modules and builds behave identically cross platform. But I still occasionally find an open source project based in a common scripting language that says "unix only" or "windows only". Typically I think it is because it is annoying to port the threading set up between the two... or someone in the project is a die-hard <insert name of OS>
fan and thinks that anyone wanting to do something
on a different OS is crazy. Only when the community behind a particular open source tool gets large enough and diverse enough in OS preference, does a change happen and it gets ported and maintained for multiple distributions.
KDE
is in the beta phase of supporting all their apps on Windows.
wine
gets people by for a number of window specific programs when running them on linux.
cygwin
gets people by that want linux commands available on their windows machine.
I think some of the services that are in the ballpark of this notion, don't do C++, but instead are serving SaaS, Software as a Service. They setup a server to run your program and a website that serves it up to the browser, and then you have a cross platform program available. And then there is Java, that is kind of in that same direction...
Hope that helps.