I think there is another dimension here.
On the surface it would seem as long as the .Net Core is ported to a platform, then an app written to use it would be portable to all ported platform. Although a nice idea, currently that isn’t total true in that there are corner edges of the library that aren’t completely implemented on all platforms. For example, I’m working on the System.IO.Pipes name space and for example, pipes on the *NIX platforms don’t support message mode and if you try to use that mode, you will get exceptions thrown.
This brings up the general issue of the philosophy of the .Net Core library, and that is is it a portability platform, ie does an app running on one platform work on all platforms? Are unsupported platform capabilities supported by simulation in the library (e.g. *NIX pipes don’t support message boundaries but could be simulated) Is there a subset of the library that can make the guarantee?
Or is the library a special binding to the underlying ported platform? Only supports what the underlying platforms supports without doing any simulations of unsupported capabilities.
I personally suspect that most people would vote for the former that is the library supports portability across ported platforms.