You're right about all that, but also consider that it basically comes down to conflicting requirements. Some things simply can't be polished "away", no matter how much effort you put into it, at least not without fundamentally changing the design / architecture of the entire software system... at which point we'd be forced to give up other properties we might find desirable.
If I were to ask you to build me a house as cheaply and quickly and possible, you'd have to instantly intervene and tell me I can't have both at the same time. I can either have the house built as quickly as possible, or as cheaply as possible, but not both simultaneously. Those two requirements are mutually exclusive. That's not a perfect analogy for software, but it exemplifies the problem for all the non programmers out there. Windows for desktops / servers is designed to be as flexible as possible in terms of hardware support. If you also want the software to be as efficient as possible on the hardware platform it runs on, then we're out of luck. Those two requirements are also mutually exclusive.
There are thousands of similar trade offs which MS developers made during their work on Windows, and for Windows, peak performance is not always the most important goal. Flexibility, cost of development and maintenance, stability, and a dozen other things are all far more important than being as efficient as possible. The design decisions made with those requirements in mind are an inherent part of the system, and the performance penalties those properties incur can't be optimized away, at least not without removing those properties along with it.
Don't get me wrong... I'm sure MS can still improve a lot on what they currently have... we'll never get back to WP7 or WP8 levels of efficiency though. In exchange, MS now has an OS that is much cheaper to develop and maintain and developers have a unified programming model to makes apps with.