The reason for this is that if you currently use a macro like MY_LIB_ASSERT(x), then you have control over what it does, even when your header is used by someone else.
When using a macro this "even when your header is used by someone else" is not possible. I.e. you don't actually have the control you think you have.
--
-- René Ferdinand Rivera Morell -- Don't Assume Anything -- No Supongas Nada -- Robot Dreams - http://robot-dreams.net