Seriously though, limiting the macro length to something reasonable should work, but it’s also guaranteed to make some people mad. I’m sure there’s at least one user who is working on something absurdly obscure that requires a macro long enough to reach beyond the edge of the observable universe.
My solution is to make the default behavior sensible, while proving a special option for that one guy. Just limit it for the average user, but not for everyone.