They are viewed as full-blown types by Ada, forming the class of discrete types with integral types, so there are probably no semantics reasons why ENUMERAL_TYPE nodes should have an INTEGER_TYPE node as their base type.
I'll add here that at one point I tried doing it the above way and it didn't work well. The reason was basically that it didn't match the language semantics well and it's sort of like having an MD file that doesn't exactly match the machine but you think you can get away with it: lying to the compiler rarely seems to be the right approach.