Lisp:
(mapcar 'funcall (loop for x below 3 collecting (lambda () (print x))))
producing:
3 3 3 (3 3 3 )
OK, it is the loop DSL that chooses to rebind the same variable over which I closed, but loop is in the standard so I'll blame lisp. The syntax really looks like a fresh binding. Shucks, this is almost a bug: the loop implementation was allowed to leak into the loop semantics.