That would be great for developers like you and me -- after all, our skills are most valuable when they are portable. How much more can we get done if we don't have to support multiple platforms?
However, the interests of vendors are diametrically opposed to our interests as developers -- it is all about vendor lockin, and making it as hard as possible for us to support competing platforms.
I understand the theory, but in practice this means if you want to implement a competing platform... you just need to write a Swift target!
Much easier for developers to go check out your platform.
More unification would likely also mean better abstraction layers across platforms, meaning that competing platforms could rely on those abstraction layers.
Think about how nice it is that most devices out there are running at least a flavor of Unix. You have a base-level expectation of how things can be integrated. There are of course differences, but generally if you write your stuff in a certain way you can use it almost everywhere!
And for those who don't want to work on Unix, all you need is a compatability layer to bring over some useful tools. Just get that C compiler up and running and you get a lot of stuff too!
The reason this is different from other forms of platform lock-in is that ultimately things like programming languages don't cover the full stack, so there are "obvious" places where you can swap either your language, the stuff underneath, or the stuff above it.
However, the interests of vendors are diametrically opposed to our interests as developers -- it is all about vendor lockin, and making it as hard as possible for us to support competing platforms.