I just want to add something which I think is vital, but was totally dis/missed from what Jim said (by the way Jim, thanks for honest answers). When Jim says:
a) Yes b) n/a c) Because we didn't see this approach as the best solution for our users. We've tried to cover many of the issues that pushed us to C++/CX and I can understand if you disagree with some of them.
I strongly believe that here is the crux - who are those users Jim mentions? Not C++ community surely? So who else is there? The answer is clear and obvious: The .NET crowd.
MS as a very respectable company cannot just abandoned its current "users" and tell them to feck off and that the technology they were lured to for over decade simply goes to butcher's house, and those folks need to learn new technology or learn a new phrase "DO YOU WANT FRIES WITH THAT?".
No, MS knows that this wouldn't be the right strategic decision. In view of the fact that .NET will/is going to be slaughtered in the near future, MS had to come up with something better/clever in order to:
a) keep a face
b) confirms to its "users" that those who stick with it can depend on MS and will not be abandoned by this company
c) keep an image of a respectable company
c) holds to its "users"
needed to ease the pain of switching between technologies.
There were few options - better ones (Jim in his answer, admits that there is a way to do this with C++) and worse ones. Why MS picked worse one? Every one knows that people who works at MS are world class pros and experts, so how is it possible that MS made a mistake in judging what's good for it's customers. Exactly - just because it's worse for you it doesn't mean that is worse for MS customers, do you see it now? MS picked what's right for its customers, not what's right for you. Now when the cards are reveiled everything starts making perfect sense.
Well, as they say in my old country if you don't know what it's all about it must be about money. And if you think about this, MS knew who their customers/users are. There are .NET crowd. Not C++ folks.
There are much more .NET devs in the world than C++. To MS was obvious that it has to try to keep those people by its side. In order to do that, familiar syntax and workings needed to be put in place. Just to make the switch from .NET to WinRT as easy and gentle as possible. That's why there also wasn't any pressure on adding C++11 features. What for? Their users don't need them so why would they bother?
And what they (MS) could loose? Nothing really. .Net crowd will eventually switch to native WinRT - why wouldn't they? and those guys from C++ community who decide to use WinRT with the syntax from .NET world will be and extra addition to customers/users group of MS. Perfect plan. No chance for a loss.