¿Por qué una matriz no es asignable a Iterable?

Con Java5 podemos escribir:

Foo[] foos = ...
for (Foo foo : foos) 

o simplemente usando un iterable en el bucle for. Esto es muy práctico.

Sin embargo, no puedes escribir un método genérico para iterable como este:

public void bar(Iterable<Foo> foos) { .. }

y llamándolo con una matriz ya que no es un iterable:

Foo[] foos = { .. };
bar(foos);  // compile time error 

Me pregunto sobre las razones detrás de esta decisión de diseño.

Respuestas a la pregunta(4)

Su respuesta a la pregunta