ну как сказать, макрос уменьшает человеческий фактор. да, мы могли бы импортировать функции и вызывать их в нужном порядке, но, порядок иногда меняется и везде его редактировать не очень удобно.
Короче ладно, я только вкинул и похвалил макросы, как по мне, их зря хейтят. Ужасный нечитаемый код можно и без макросов написать)
Но еще один минус про макросы могу вкинуть, не знаю как сейчас, но раньше был случай, в макросе переменную криво назвали - компилятор не подсказал, что такой переменной не существует, и не сказал, что переменная не используется (та, что крива названа)