... platforms as different as Windows Phone versus a full size Windows tablet, there will be both user interface code and device-specific code that cannot be shared.
Tablets are not very different from phones in terms of capability, input methods and features; the bigger difference would be between an app running on a touch device versus desktop. Mouse-click targets are much smaller than touch ones, and there are additional gestures (hover, right-click) that users expect to be able to exploit. Even then, however, the core program logic remains the same.
Like a lot of Visual Studio, this isn't a technical/API feature, but rather a way of making it quicker to manage the process of developing a product. It also looks like Microsoft has been (unusually) pragmatic here, and started from the admission that there are application features that cannot be the same on all devices. (Remember Java's "write-once, run anywhere" promise? By using the same code, you ended up with every platform's application running at the level of the lowest common denominator, and it's a problem that's plagued multi-platform frameworks since then.)
So, this might only be a way of managing functional modules with better separation of concerns and allowing easier sharing of media assets within a project, but I'm always in favour of tools that make doing the right thing easier.
(And I think Nokia and Apple hold top place for ditching technologies just as developers get to grips with them.)