Well, its utility is only in "this version is considered immutable". The Ruby guys use a convention of 1.2.dev and the Java/Scala/Clojure guys (because they all share most of the same toolchain) use a convention of 1.2-SNAPSHOT.
We could just do that. Users would expect a version of 1.2-SNAPSHOT to possibly change, while expecting that eventually an immutable 1.2 would be released.
I guess I never understood self-imposed, artificial restrictions. If we want something not to change, then don't change it. OTOH, if a silly typo bug that went undiscovered appears in something that wasn't intended to change, wouldn't it be ok to just fix that typo?
What's the use-case for needing absolute immutability, including inability to fix a typo? Security -- verifying a digitally signed package is the only one I can come up with.. Is that it?