One thing to take into account is that the more people who use your product, the more likely they'll push it where someone else can foot the bill. If someone learns Java or ObjC/Swift, because they can't afford to use Xamarin that means that individual will be less likely to recommend it at companies they work at. If it followed more of a Unity model it could cause a cycle where people start pushing out more things to support Xamarin, which causes more people to pick it up, which causes more people to recommend its use. It is why so many startups focus on user acquisition to create this gigantic tipping point.