Devi considerare che gli array in Java sono oggetti (derivano direttamente da Object).
Quindi, una modifica fatta ai loro elementi è effettivamente equivalente a richiamare un metodo dell'oggetto. E' come se l'oggetto array avesse l'overload dell'operatore [] (parlando con termini del linguaggio C). O, se preferisci, è come se vi fosse un metodo setValore(), che renderebbe equivalenti le seguenti chiamate:
codice:
// Sia mioArray un array (di qualunque tipo):
mioArray[0] = valore;
mioArray.setValore(0, valore);
Da questo si deduce che la restituzione di un array tramite un metodo è equivalente alla restituzione del riferimento all'oggetto.

Ciao.