Why not real anonymous functions?

The difference would be purely syntactic. You could imagine a few different constructs (not necessarily proposing either of these as a real solution, just examples):

my_func = (*args, **kwargs) => 
    do_some_stuff()
    do_some_other_stuff()

another_func = def(*args, **kwargs):
    do_some_stuff()
    do_some_other_stuff()

The fundamental problem here seems to be with properly delineating the function. I imagine that is the major objection to any kind of solution (including one that involves the existing lambda keyword). But it’s not insurmountable; there are clearly some other design considerations or preferences driving these objections.