with-do ist eben kein for-each.
Stell Dir with-do als Namensraum/Scope vor, der verwendet werden soll.
Die Aufzählung ist nur eine Vereinfachung um nicht...
Delphi-Quellcode:
with foo do
begin
with bar do
begin
//...
end;
end;
...schreiben zu müssen.