I would prefer to not change the semantics of the code, because it can lead to subtle behavior: for example, what if the match is inside one of the monad libraries that already override what = means?
You can say we could detect those cases, but it is not trivial to differentiate from a macro that transform = from another one that wouldn’t (such as the if/2) macro.
In other words, macros that traverse ASTs and change the semantics of the code should not be encouraged, so I don’t think we should go ahead with this.