It's one thing to write a server - all you have to do is manage player locations, physics, weapons, bullets, all their locations—then passing that information onto all the connected clients. It's much more difficult to re-design the rendering engine for a different API, as well as redesign the input and sound engines for one or two OTHER APIs, or even write their own, not to mention redesigning steam to work in a linux environment. Valve always intended to run steam on a windows client, so their steam server would probably have to be redesigned to accomodate different filesystems on connect—something they didn't have to do before. Of course, this doesn't even mention mods, which use Visual Studio 6 compiled C++ DLL's to run. That doesn't port nicely to other systems like Unrealscript files did.
So, yes, this is the worst case scenereo, but it's still pretty bad. I completely understand their reasoning behind not doing it.