Earlier I used macros for “et al.”, etc., but nowadays I would discourage people from defining that kind of macros.
One problem is what you already observed: it’s surprisingly tricky to get the definitions right so that they handle all special cases correctly (including the interactions with other packages – e.g., those that re-define the “\cite” command and tweak spacing before references).
But more importantly, even if you have a bunch of macros that suit your needs and you know how to use them, your co-authors are likely to be confused with exactly how to use your macros correctly in various special cases.
Hence I’d recommend that you avoid macros for trivial things such as “et al.” and simply spell out everything by using standard Latex markup. After all, most cases don’t need any special handling (“e.g.” is often followed by a comma; “et al.” is often followed by “~\cite”, etc.), and whenever special handling is needed, all Latex users should know how to use commands such as “\ ” and “\@”.