Personally I didn't even know you could put a version into the lifecycle, I've never seen that done.
Second, I always subscribe to the theory that "closest" wins. In the inheritance case, it means things in my pom override my parent pom, which overrides the grandparent etc. I think in this case, the pom is "closer" than the lifecycle and therefore it should win as is happening in the 3.x case. In otherwords, if I use a lifecycle that defines a version but need to tweak the version how would I do it? The pom is my only vechicle for overriding it.