Che Xamarin sia Cross Platform e' una leggenda metropolitana.
E' Cross Platform quanto lo puo' essere un programma scritto in C (ma scritto MOOLTO bene)!
E non potrebbe essere altrimenti perche' non crea un ambiente uniforme su Android/iOS/WIndows Phone, ma semplicemente permette di sviluppare in C# invece che nei linguaggi nativi di ogni piattaforme, e mantiene il funzionamento originale della piattaforma.
Un'ambiente di sviluppo VERAMENTE Cross Platform dovrebbe, in teoria, eliminare TUTTE le differenze esistenti tra le varie piattaforme.
Al momento, quello che meglio si avvicina a questo concetto e' PhoneGap/Cordova/Ionic, in cui l'intera applicazione e' basata su HTML+CSS+JavaScritpt.
Problema: le performance, che ovviamente sono abbastanza limitate, e le funzionalita', che sono ridotte al minimo.
Un'altro ambiente Cross Platform con ragionevoli prestazioni e' Java: ci sono molti software anche complessi che girano, senza nessuna modifica o, al piu' con modifiche veramente minime, su Windows/Linux/Mac.