Yeah its unfortunate, and an unpleasant gotcha to experience after a large number of revisions. The reasoning behind this is Android is the only platform with 2 separate fields for a version number, Cordova also hit this problem and just added a thing that generates the versionCode automatically from the version number. We just copied their behaviour. Instead of adding a property to the project that is only used on Android.
Another thing you could do is to treat the right hand side as a build number, that doesn't reset when you change the major version. So your next version would be 1.1000.
It's not uncommon to have a behaviour like this, I used to work on an application where we had a 3 digit build value at the end, and used even values for Android and odd for Android.
I'll have a chat with the others what we think the best solution for this is, I think we should be able to provide an override for the versionCode value somewhere and an associated warning about the sum we use for the default value.