Java: Warum kann ich nicht über einen Iterator iterieren?

Ich leseWarum ist Javas Iterator kein Iterable? und Warum sind Aufzählungen nicht iterierbar?, aber ich verstehe immer noch nicht warum:

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

wurde nicht möglich gemacht. Mit anderen Worten, es sei denn, ich vermisse etwas, das oben Genannte wäre ein netter und gültiger syntaktischer Zucker für:

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