Microsoft invest lots of money into lots of different technologies, then dump them later. OLE, COM, Win16/32 and many many others have fallen by the wayside over the years.
All of the above are still used pretty heavily, even by new work coming out of MS.
You're RIGHT though, it's just the examples aren't so good. In recent memory: WPF, Windows Forms, MFC, .NET Remoting, DCOM...
They actually had a session at a recent dev conference (I saw the video) where they told you all about the underwhelming list of new features coming in WPF. The main message: WPF isn't dead! But it made things pretty obvious.
The trouble with a company the size of Microsoft is that there are so many people creating so much STUFF that it's nearly impossible for them all to work together. It may be better for them, as a company, to allow their various branches to function independently while exposing an inconsistent API story to the outside world. The alternative would be to make everybody talk to everybody else, causing all work to come to a grinding halt.