I read a couple of interesting blog posts about the performance of blocks in languages like Ruby, Python here[1] and here[2]. The posts start out questioning Ruby but towards the middle and the end it does draw analogies between python's design decision to introduce 'with' statement as a language extension rather than a closure.
[1] http://pluralsight.com/blogs/dbox/archive/2006/05/09/23068.aspx [2] http://pluralsight.com/blogs/dbox/archive/2006/05/08/23001.aspx -- http://mail.python.org/mailman/listinfo/python-list