You just described exactly what I described in various other posts. How you came to the conclusion that I "don't seem to understand" can only possibly be due to some sort of zealot blindness that makes you a defender.
Best case -- terrible abstraction.
Worst case -- you're rewriting much of your code for each platform, working on a 3rd party incomplete abstraction that is always behind and full of unnecessary layered surprises.
What a win!
And for the next bizarre Xamarin sponsor that decides to wallow in and throw up this -- I worked on a large scale solution with Xamarin. We threw it out and just went with separate projects for each platform, sharing code with C++. Works wonders. Way better than Xamarin.