INTEGER are almost identical (they just use distinct tags). The generic idea is that
ENUMERATED is for a choice within a bounded set of possible values, whereas
INTEGER is for values which could, at least theoretically, raise indefinitely.
Here, the use of
CRLReasons is a hint which says that "there shall be no other reason in the future", whereas there may well be other protocol versions (possibly many others).
Now that's just a declaration of intent, which will not be enforced in any way. Remember that the justification of most of ASN.1 is: "it looked like a good idea at that time". Do not try to read too much in it. After all, ASN.1 succeeded in defining, well into the 1980s, a format for dates which has only two digits for the year -- a glaring Y2K issue, which did not deter the standardization committee... so just accept the
INTEGER duality as one of the numerous quirks of ASN.1 (it's not the worse).