Java: pourquoi ne pas itérer sur un itérateur?

J'ai lu Pourquoi Java est Itérateur pas un objet iterable? et Pourquoi ne sont pas les Énumérations Itératif?mais je ne comprends toujours pas pourquoi ce:

void foo(Iterator<X> it) {
  for (X x : it) {
    bar(x);
    baz(x);
  }
}

n'était pas possible. En d'autres termes, à moins que je me manque quelque chose, le ci-dessus pourrait avoir été agréable et valide sucre syntaxique pour:

void foo(Iterator<X> it) {
  for (X x; it.hasNext();) {
    x = it.next();
    bar(x);
    baz(x);
  }
}

source d'informationauteur noamtm