Ah right, because the original question wanted to support multiple return places. Thank you for the detailed reply! I also realized that the first reply called it a "bare block" which I could have used to do a Google search had I read it more carefully.
I found this when looking for a way to handle clean-up in a function that may exit early due to an exception, not a return. In my case, the "eval" approach (without the bare block) with a "die $@ if $@" is satisfactory so I don't have to pull in an extra dependency. Hypothetically, the "early return" case can be handled by wrapping early-returnable logic in a separate function, though I can see that this may be cumbersome in some contexts.