A macro behaves like that, functions do not.
Functions return regardless of what occurs inside them.
If you want to change logic based on what the function does, you need it to return something, such as a bool, which you can then check and decide how to proceed.