so if you buy a new camera/scanner/mouse/keyboard/whatever, you can't plug it in to your current USB socket, and need to pay another $100 to get the new socket
Microsoft have done a lot to support backwards compatibility. Most software which works on WinXP will work on Win 8 and vice versa.
I don't think the price MS charges for Windows is amazingly extortionate, but I get your point.
As you semi-pointed out, if MS opened up Windows I fear we'd get the same fragmentation Linux/Unix has. That's the last thing we need. Standards are good, fragmentation is not. (As long as the product is mature/good quality, and competition isn't needed as much).
Software production is assumed to be a line function, but it is run like a staff function. -- Paul Licker