Uh... strabiliante!
Tempo fa avevo provato come dici tu, ma non funzionava.
Chiedendo in giro a forum avevo trovato la sintassi:
this.value = new Array()
...e funzionava, come se "value" fosse un termine nativo di Object.
Array stesso ne ha uno, infatti.
Ciò che compare nel for...in non credo che faccia fede, o almeno mi sono abituato in ActionScript ad ignorarlo, perché lì si può deliberatamente escludere qualsiasi proprietà dal for...in.

Mi resta un dubbio... ma se io assegno ad ArrayFico un puntatore ad Array, qualsiasi aggiunta di metodi ad ArrayFico, in realtà non viene rimbalzata ad Array estendendo in realtà quest'ultima e solo di riflesso anche ArrayFico?

Ora comunque faccio tutte le mie belle provette...