Ja das ist "leider" so. Kenn das verhalten zumindest von Java.
Bei deiner "erweiterung" wird das alte Array aber nicht erweitert, sondern ein neues angelegt, das alte wird überschrieben.
Genau so kann man später auch ein Array erweitern, bin in dem Zusammenhang selbst leider noch nicht vorgedrungen, aber es sollte mit Referenzen möglich sein.
Sprich eine (eigene) Funktion aufrufen wie "add_to_array(array, 1)", in der Funktion wird die länge des übergegebenen Arrays ausgelesen, ein neues Array angelegt der selben größe +1 mit, werte übergeben und neuer wert am ende (zum Beispiel) reingesetzt.
Persönlich hatte ich so was ähnliches in AutoIT gehabt, dort gab es bereits so eine Funktion. Also hab ich ein leeres Array angelegt und in der Schleife "addTo" verwendet 