Hola:
rectangulos[0] = new Rectangulo(....) está instanciando un objeto Rectangulo que está guardando dentro del elemento 0 de un array de Rectangulos. NO está instanciando un array.
En java los arrays son objetos porque tienen atributos y métodos, por ejemplo, length o clone(), aparte de tener todos los métodos heredados de Object, como toString(), wait(), notifiy(),
http://docs.oracle.com/javase/specs/....html#jls-10.7
Si creas un array así
puedes usar sus atributos y métodos como a.length, a.toString(), a.clone(), a.wait(), etc.
Se bueno.