What is the meaning of the Bitcoin address version? Bitcoin address versions are described on the Address wiki page:


  Normal addresses currently always start with 1, though this might change in a future version. Testnet addresses usually start with m or n.


The Protocol specification gives a bit more technical detail:


  Version = 1 byte of 0 (zero); on the test network, this is 1 byte of 111


Aside from distinguishing real and testnet addresses, what is the meaning and purpose of the address version? How and why will it change in future?
Last time I heard of it, the future of version bytes was still unsettled.
Currently, they are used to force incompatibilities between several base58-encoded data structures:


addresses / private keys
testnet / realnet
alternative-chains variants (namecoin etc…)


This way, you cannot misuse one for the other.

Someday, it might also be used as a real version number (the current SHA-256 + RIPEMD-160 + base58-encoding for keys could become obsolete).