Something like this can help open up the language to support all kinds of useful abstractions. For an example what can be done when it’s made as flexible as possible, Common Lisp implements a very strong macro facility that is based on this concept.
However, JB has on several occasions said that they don’t want to implement such facility. I believe the argument is that it can be abused.