Coincido en que hay que prohibirlo.
http://stackoverflow.com/questions/7...with-in-delphi
Si se usa como :
Código Delphi
[-]
with Tquery.create(nil) do begin
open
sql := 'blah blha';
ExecSql;
Free;
end;
Pues vale... aunque eso debería ser una función llamada ExecSql( const sql : string) con todo el código dentro, así que aún así no debería usarse el with.
El problema que he visto en varios sitios es este:
Código Delphi
[-]
procedure TForm3.HazAlgo();
with Form1, Form2 do begin
... un chorro código aquí
ClientWitdth := 300;
... un chorro código aquí
end;
end;
A qué se refiere el Clientwidth, a Self, a Form1, a Form2... y las rutinas que se llaman dentro del with, ¿donde están definidas?.
Pues eso, claridad, legibilidad, seguridad... Mejor "sin" que "con"

, y si conduces, mejor "sin"

.