es ist laut Delphi Hilfe effizienter.
Wo hast Du das gelesen?
WITH legt eine lokale Variable an, welche als eine Art SELF und somit als aktueller Namespace fungiert.
Wenn an WITH nur eine einfache, lokale Variable übergibt, dann wird wirklich da nichts optimiert.
Übergibt man an WITH aber ein Funktionsresult oder einige Property, dann wird da natürlich so Einiges optimiert, da das Konstruct innerhalb des WITH-DO nur einmal ausgewertet wird.