Anything can lead to an explosion of unreadable code if left unchecked. Any language feature, with no exceptions. Variables, loops, functions, types - you name it. Anything can go wrong if used with a bit of imagination.
Macros, on the other hand, provide an exclusive way of eliminating this complexity. A way of eliminating degrees of freedom of what can go wrong. Nothing else is capable of doing it.
> Wouldn't you be concerned if you had to work on a huge code base where most of the code is written using macros?
I'd be extremely happy to be able to work on such a well designed project.
> I would run away, personally.
It only means that you don't know how to use macros. Nothing else.