Ich deklariere da schlicht eine Variable dafür und speichere das zwischen. So funktioniert intern with ja auch. Auf diese Weise ist der Quelltext übersichtlicher, aber nicht langsamer als mit with, ich kann ordentlich debuggen und es gibt keine möglichen Nebeneffekte.
So mache ich es in der Regel auch. Daß ich damit Laufzeit einspare war mir bisher nicht wirklich bewusst, aber leuchtet ein.
"With" fliegt bei mir seit einiger Zeit aus dem Code. Immer wenn ich alten Code anfassen muss, dann wird auch "with" entfernt.