Anonymous functions are a relatively new thing and, yes, they can be used as a "funky" inline scope.
There are two problems with them, first, there is probably a stack frame associated with them, something which is unnecessary with inline scopes. Second, it's simply weird to have to put an open and close parenthesis at the end for the code to execute, that's not intuitive. With inline scopes, the code you read is what executes, no need for extraneous parentheses anywhere.
Additionally, the fact that the procedure is anonymous means it has no name, that's not good because there should be a name to expose/identify what the function/procedure does (what's its purpose!.)
I concede that anonymous functions can be used to implement inline scopes but, I see them as deficient band-aids as well as quite likely inefficient (the inefficiency would come from them establishing an unnecessary stack frame which has to be taken down upon exit.)
There are other problems/deficiencies from a language design standpoint such as, the procedure name is or isn't required depending on _where_ the procedure is declared, i.e, depending on the location, it is a nested procedure instead of an anonymous one. The parentheses would be an error for a nested function, while optional for an anonymous one _and_, worse, quite easy to inadvertently omit.
Just because something can be used doesn't mean it's good.