Na ja das ist ja wohl eher ein Nebeneffekt. Der Hauptsinn von offenen Arrays ist doch,
Das ist ja kein Sinn, sondern die Art und Weise wie der Compiler intern arbeitet. Der arbeitet nun einmal typsicher und braucht daher einen Typ, auch wenn da "nur" steht array of integer. Also legt er einen neuen lokalen Typen dafür an.
Und da der dann nicht mit einem anderen Typen übereinstimmt, auch wenn er eigentlich gleich aussieht, sind sie nicht kompatibel.