(a) MS has already, or is working towards, open-sourcing everything that developers use (and honestly, that's what I care about)
(b) They aren't going anywhere. That's a problem created by FOSS because if you have no commercial arrangement, abandonware is trivially easy
(c) That's a design goal and a valuable one, but it has limits. There are a subset of utilities whose i/o can reasonably be represented as a stream and there isn't a lot of new development in that area. It's an argument from thirty years ago