- I can't believe that, older blocks are valid because they exist and have been confirmed everything else would contradict immutability.
You're not understanding the point. Older blocks are valid by virtue of the software using older rules. The version in the header specifies which set of rules to use. A version 1 block with version 1 in the header is still valid, even if version 1 blocks are not valid when labeled with a newer version.
- The version number is a variable(!), every miner is free to choose whatever she wants. If what you say is true, somebody could create quite a mess with sending an old version number. In such a case we should remove it as bug urgently.
So? Then their block is validated under those rules, assuming new blocks under old rules are even considered valid after a certain point.
Just looking at a set of blocks make we wonder why we can't map them in a way that we just cut of all the leading zeros. ++
That has its own overhead. I'm not sure how it would ever outweigh the drawbacks. 4 bytes isn't that much, unless you're still hand-soldering discrete 74XX76 flip-flops together for memory.