I dug a little deeper into this and think you've uncovered an issue with the API. It appears that in order for the MinScale assignment to take effect, the MapView SpatialReference has to be established first. To test this you can take your MinScale assignment out of the XAML and move it to a MapView.SpatialReferenceChanged event handler hooked to the MapView in the code-behind:
MyMapView.SpatialReferenceChanged += (s, e) => { MyMapView.MinScale = 15000; };
That should give you the effect you're looking for - zoom should be limited by MinScale. You can also use your ViewModel to do the same thing, just make sure the MapView has a SpatialReference before setting MinScale.
I'll log an issue for this in our internal system. Thanks for posting.