My vision is that such macros should cover most typical case(s) only, but not very particular cases.
Generalization is good in some places, but not everywhere.