Просто человек не делает различия между функциональным блоком(макросом) и функцией.
Функциональный блок(макрос) обладает внутренней памятью в которой храниться состояние внутренних переменных(переменной) и в зависимости от внутреннего состояния и входа формируется выходное воздействие (выход из функционального блока). У функции же в зависимости от входа формируется выход (за один такт выполнения).
Так же у функции (в большинстве случаев) один выход, а функциональный блок может обладать несколькими выходами или тоже только одним. Собственно получается, что макрос - это функциональный блок. Детерминируемый или нет? Думаю, что да - ведь мы делаем функциональные блоки (макросы) с уже известным(предсказанным) поведением при известном внутреннем состоянии и входном воздействии.





