My take on this- how much can they really modify here and make sure they don't break compatibility with the 3rd party apps? If things were not so dire that they needed to dump a platform they have years invested in, is it really smart(arrogant?) to think that the OS that has actually shipped and seems to be pretty good is not good enough for them?
In reality, it seems like they are going in the opposite direction: Microsoft has actually partnered with Nokia to include Nokia Maps in all their service platforms
Since Windows Phone is based on .NET, a lot of changes can be made by Nokia without breaking compatibility with third party applications, e.g. .NET allows multiple versions of a library to exist simultaneously for different applications because it was architected with backwards and forwards compatibility in mind.
.NET isn't what allows that to happen, though, since, AFAIK, MS has not committed to binary compatibility between .NET versions. While the framework makes it easier to leverage these features(you can still use it with non-managed C++ but it's quite annoying to get working), the Windows kernel is what allows the multiple versions to exist.
In the case of .NET, it's the side-by-side deployment of the .NET runtimes that allow multiple versions to be present on the system at the same time.
> the Windows kernel is what allows the multiple versions to exist.
I don't think you know what the Windows kernel does. Multiple library versions have nothing to do with the kernel because 1) the kernel doesn't know anything about libraries, 2) the kernel doesn't do userspace binary loading (even for completely unmanaged code), and 3) the kernel does nothing at all with .NET.
Side-by-side deployment of binaries is actually completely separate from the functionality in .NET that allows multiple versions, which is the GAC (Global Assembly Cache); SxS binaries (which are used by unmanaged code) are completely separate, although they both reference their respective binaries via manifest files.