From some other persons investigations, it really seems that WinRT is currently built over Win32. Combase.dll and others rely on user32.dll and other classical libraries (MinWin is mentioned). The window that contains metro application is a classical win32 window. DirectX is probably used to draw controls in it.
It is funny that technically, WinRT really looks like FireMonkey from embarcadero: an UI library based on DirectX/Win32.
You feel very pessimistic. But it could have been worst for C++. There were other possible scenarios:
-> Metro app could have been limited to HTML/Silverlight like on WP7.
-> WinRT could have been exposed as a .NET library added to the CLR.
In those cases there would have been no other solution than using C++/CLI to build metro app in C++...
Then, I did not tried, but in theory, it is possible to write metro application using standard C++.
Because the interface of WinRT API is supposed to be COM. But is it true COM? There is some traces of possible modifications, like a midlrt tool. There is also new famous interface IInspectable that seems to more or less replace IDispatch. But you are probably free to use all the COM stuff the old way, by hand (CoCreateInstance and so on). But it sounds painfull, like COM was (At least for me)...
Perhaps the wrl of Yannick could be another solution.
I don't know what is in the header files of wrl, but it seems from the web that there have been some additions to "Win32", like a WinRTInitialize in combase.dll. Or a CreateImmersiveWindow in TWINAPI.DLL. Is it a Win32 like layer under WinRT? It is still pretty hard to find information about WinRT internals (Does WinRT rely on Win32/DirectX, ntdll, the kernel?) without installing windows 8...