We literally track changes based on the version ID / string so what you're suggesting isn't really possible without some other identifier that somehow isn't tied to versions. And ultimately this over-engineers a solution to a problem that is fairly trivial.
I agree there can be situations arising from the scenarios you describe but they are generally trivial to mitigate using version control which most serious developers should be. There's obviously a learning curve there but synchronising your code to something like GitHub is at minimum useful for backup purposes.
But once you get used to concepts like branching and merging, it becomes really a non-issue because you can then have multiple versions in active development at the same time.
Naturally sometimes mistakes get made. Believe me. We've done it ourselves. You forget to bump the version and the changes for your next version end up getting attributed to the previous version. But, once again, this becomes more trivial to fix with version control as you can manually fix any versioning mistakes made.
Not commenting either way on the suggestion at this point, but thought it worth addressing this. At the very least, this is a separate discussion and we should keep this thread to discussion about [USER=1059]@Kirby[/USER]'s suggestion.