MS could continue as usual, but also employ some opimizers, who work on finished code and shave off clock cycles here and there.
Perhaps they do. Only Microsoft people would know for sure. If the Linux people do it (implementing parts of the code in assembly when needed), I'm sure it is something that Microsoft has already evaluated.
For any real number (the original point of your thread) to be derived properly, we need a project as big as a modern OS to be done in assembly, and see if it is even feasible.
Small things can be done easily. And doing many many small things is likewise easy, just time consuming. But doing small things that are integrated to each other forming one bigger whole is something else. That is why doing small, stand-alone "office automation systems" per department is easy. Ten of them is also easy enough to do. But if they are actually parts of a whole, it becomes more complicated. And so ERP-type systems are hard to implement, and why managers/executives don't see why. They just believe it is just 10 or 20 of the small systems joined together, so it should be no more than 10 - 20x more difficult and complex than an individual stand-alone system in a department. Reality is that any time elements/entities/components have to interact with other elements/entities/components, complexity shoots up beyond linear. I found DrMrLordX's reference to the Mythical Man Month very apt, I was not aware he was a programmer himself.
Not to make a conclusion to a problem/test I proposed myself (having a modern OS done in assembly), but there's a reason for having higher-level languages, and it is not because of this:
I think the reason high level languages took over was the lack of energy awareness and the relatively small number of computers worldwide. Now that this awareness is there and computers consume huge amounts of energy, a return to assmbly COULD be worthwhile.
Programming languages are tools, and nobody makes tools "just because". The old tools had room for improvement, and so they did improve, and we have what we have now. Saying that programming languages only developed into higher-level ones due to "lack of energy awareness" is just flat out wrong. Tools evolve as needed, and that's exactly what happened with programming languages as well.
I guess in summary, what I'm saying is basically two things:
1.) Making a huge, complicated program like an OS entirely in assembly is not feasible (not to mention, non-portable, which is very important for operating systems like Linux and friends)
2.) As for continuing as they are now, but employ optimizers... the Microsoft campus is filled with incredibly smart people. I am sure they have had hundreds of discussions about optimization techniques; I don't think they missed the one idea about putting in assembly code in high-traffic areas of code.
I enjoyed the discussion here, however. It is something to think about, but in the end, assembly is too low-level, non-portable, and much much harder to maintain and extend.
My two cents, at least.