The block is nice because through it, Jenkins enforces that the build will eventually release the lock, and it is hugely obvious when that will happen.
Allowing the "return the lock, and not require body" opens the possibility of a build acquiring a lock but failing to release it (when expected).
The fact that failing to release a lock when you meant to is "not" possible with the block design is a huge feature! Changing the behavior of the lock step would break most pipelines that currently use it and just as bad - in my opinion - force pipeline authors to correctly handle locking and releasing to avoid deadlocks, in every pipeline!
Deadlock issues aside, this is a colossal interface change for pipeline authors to understand!
With a change, everyone would have to correctly set up try/catch blocks throughout their pipeline, and handle locking/unlocking manually!
Perhaps a new step name (manualLock? getLock?) to indicate that pipelines must take explicit responsibility for managing the lock, and the original step name (lock)( ... ) { ... } ) continues to function as before? A way to extend support to cover the additional use-cases without breaking or burdening the existing use-case?