I think it is time to start looking at the 3d API as a tool and not as a religion and use it accordingly. This means D3D on Windows, GL on Mac and Linux. When using Cg as the shading language, it shoudln't be too hard to maintain both GL and D3D versions, as the 3d setup differences are minimal.