Yes, the result is unspecified, that is what i'm talking about: it doesn't specify what it happens, meaning that the implementations will have to figure that out themselves, potentially in an incompatible manner (although in general implementations do try to be compatible with each other, but this is by communicating among themselves and trying to fill the holes in the Oberon-07 spec).
Similar question is also about pointers, what happens if you try to use p^ when p is nil? Do you try to access whatever address nil represents? Do you abort?
C has the notion of undefined behavior and it is explicitly mentioned, but Oberon-07 doesn't mention this at all meaning that implementations need to make those decisions.
1. restrict the freedom of compiler writers. On very small systems, for instance, array bound checking may not be implemented,
2. make programmer rely on non-obvious behaviour/results which makes programs harder to understand and maintain,
3. make the language specification more complicated.
The result of assigning an integer > 255 to a byte is unspecified; it's the same with numeric overflow in arithmetic operations.