After playing a bit with the new Visual Studio 11 preview, I think the most interesting question is how can I make my new javascript based app run also in the browser with minimal changes? is that possible? I suppose the idea of supporting javascript is for better cross-platform apps, am I right?
I understand some of the winJs code calls the WinRT, but can we use some of the WinJS code on web-based apps too?
I'm here at build and based on what the Microsoft guys have said is that WinJS does call into the Windows RT. Plus some of their stuff is based on some vendor prefix css stuff (ie IE10 only). So short answer is no, you can't.
More thoughts. To be clear, going from an existing Html/Js app to Win8 should just work. Some considerations of the Win8 App events, and the look and feel are some issues to be concerned about. But the core should work.
The original question is not to dissimilar than, "I have an IE9 HTML5/Js app that I want to run everywhere (including IE6, FF2), Is it possible?" There is a lot of functionality in their libraries, as well as there leveraging of new CSS3 features (-ms-grid, -ms-float, 3d transforms). As far as I know, all their gesture recognition stuff is in the winRT, for "fast and fluid" responsiveness, none of that you can really use outside the Metro environment.
In my opinion, the reason why win8 Metro-style apps is being supported, is not because of cross-platform apps, but to increase the developer base on who can write win8 apps.