There are only two versions of address, '1' and '3' addresses. '1' is for P2PK and P2PKH outputs, and '3' for P2SH outputs. These three output types are the only standard output types for now.
You can represent anything you want as an address. You just have to create your own algorithm for generating the representation.
Really, it's only the P2PKH and the P2SH outputs that have a standard bitcoin address. Anything else (including P2PK) is non-standard and is up to the person doing the conversion to decide how they want to represent it.
It is common to represent a P2PK output as a version 1 address, but if you gave someone that version 1 address there are no wallets that would build such an output, and when the output was created it was NOT done with that address.