Monotonic versioning [0] seems to be a strictly better scheme; "semantic" versioning doesn't actually include meaning, just the opinions of the authors of code. A language's development environment could enforce the monotonic requirement.
[0] http://blog.appliedcompscilab.com/monotonic_versioning_manif...