I see the problem with return, but is it really important enough to have the confusing multitude of options? I wonder if it could at least be approximated with labels in languages without "blocks" (like break, next, retry and so on).
Also, what will the return do if the block has been defined outside of the method, will it also return from the method?
Anyway, thanks for the clarification. I guess to_proc was what I had been looking for back then when I ran into the problem.