I don't think this is an issue specific to Windows 8 at all, but rather simply an issue that has slowly but surely over time made itself more apparent.
Back in 1984, we have an extremely limited set of GUI elements. They could be styled in many ways, but essentially all retained the same functionality and interactions.
FWD 3 decades and now we have almost carte blanche to come up with entire new GUI paradigms for each and every project we work on--not that we should do that, but the technology now allows us that freedom (for better and worse).
In my (limited) experience with MVC, it's often 'sold' as a means of 'skinning' a solution. As long as you keep with that concept--meaning the interaction of the element won't change...merely the color and fonts, you're OK.
But as you are likely realizing, there may be 3 different interactions that can be used in a particular case and all 3 are much more than merely different skins...but completely different components--and may even connect to the back end in very different ways.
In the realm of UX, the main point of separation between form and function tends to traditionally be the wireframes vs. the prototype. However, it's an incredibly blurry line and isn't one you can depend on.
In the realm of Agile, I'd say the main point of separate between form and function would be the user story vs. the solution (ie, everything else).
Bottom line, I suppose, is that we are now in an era where form and function go hand-in-hand and need to be addressed simultaneously--especially in the Agile workflow.
When it's absolutely needed, however, I think concepts such as json, services, restless services, and the like are perhaps the direction to head in...where there is a clean break between the exchange of data and the presentation/manipulation of said data in the presentation layer.
In my experience, that works--in theory--not always in reality. No matter how hard you try, there's always a deeper connection between the layers than we often want there to be.