I understand the need for also supporting PCL, but we just can't support it the way PCLs are limited today.
We are considering supporting .NET Standard 2.0 in the future, as this looks to be resolving some of the limitations that PCLs are adding.
> If I may suggest, supporting PCL should not be complicated
True PCL isn't necessarily complicated, but in this case we're hitting "impossible", or we'll be creating an API that would be detrimental to developer ease of use. We chose to favor an easy to use API over a bunch of abstraction levels.
> Most large applications would not use shared projects
I'm curious why you are so much against shared over PCL, or what this statement is based on? You're still able to share code in a single project. Yes it creates a binary per platform, and you reference a project over a binary, but for the most part users use project references, and at the same time you'll never hit the "PCL Wall" and can always add #if-def in a few platform abstraction methods. I understand you don't get a common library binary .dll you can reference, but you would still be able to create a single nuget .nupkg you can reference in all your projects.