But Lisp doesn't need two different kinds of lambda (at least neither Common Lisp nor Scheme has anything like that).
> (defun foo ()
(funcall (lambda () (return 3)))
The solution proposed by OP (distinguishing "lambda" callables from "block" callables) is in my opinion misguided, because it only solves a problem partially, in a confusing way and creates new, unnecessary entities. The return-from mechanism is simpler and more intuitive.