Ahh, that explains it. Thanks for the elucidation, Wisp.One nice thing about the functions is that they're coded with self-initialising variables, whereas the macros are not. The limited scope of variables within functions is also very convenient, but not particularly relevant here.
