No, perchè dovrei modificare il prototipo di Array?
Semplicemente in questo modo prendo in prestito il metodo degli Array push e lo uso su un oggetto che non è un array.
call serve a richiamare una funzione, l'unica differenza con la normale chiamata di funzioni è che il primo argomento che passi diventa il this della funzione push.
In altre parole call permette di usare il metodo push su un oggetto a piacere ( altrimenti sarebbe necessario assegnare la funzione all'oggetto e usarla come metodo ), in questo caso arguments.