Relation names in macros collide with relation names in the calling pig script. This is my most common source of errors and it makes writing macros hard. Suggest that the macro processor create a unique namespace for all relations in a macro other than $in and $out. Prepend something to each relation name or somehow create a unique per-macro namespace.
This may conflict with some uses of macros where relation names are passed through passively, but this is always avoidable by supplying parameters and feels GOTO f*cked.