Это хорошо в блоке, который выполняется в его лексическом контексте, но гораздо менее интуитивно понятен, когда используется в процедуре, которая выполняется в другом контексте.
y 1.8 есть тонкие различия между proc / lambda, с одной стороны, иProc.new
с другой.