Programming languages are based on consistency. All statements must abide by the same rules regarding a particular type, otherwise you have to program with the language reference manual next to you so you can look up for each expression/statement how it bahaves.
Either an enum is either only defined between min and max (ISO Pascal, FPC, Java), or it's defined as long as it fits in the underlying type (C, C++, C#). Delphi is buggy in this regard: it treats array accesses like FPC and the rest like C/C++/C#.