Emacs' C code is pretty macro heavy. For example, https://github.com/emacs-mirror/emacs/blob/f3e16cbb5258fcbe2969eb48b332b2c629cfb2a6/src/print.c#L112 . I suppose it's a natural inclination for lispers.