Me despistado.
Evidentemente si propones la estructura with .. do como código tan eficiente como la segunda propuesta que hago, es que esta estructura no sirve para evitar escribir codigo repetitivo (cosa a la que induce a pensar muchos libros).
¿por qué es tan eficiente? ¿cómo funciona esa estructura?.