Я конечно не такой спец по сям, как тут присутствуют, но как я
понимаю, !DISABLE будет только в одном случае, который еще, в
добавок ко всему, может зависеть от некоторых сторонних факторов,
которые иногда могут вылезти боком в самых неожиданных случаях.
Согласно булевой парадигмы в сях логично было бы указать, что
ENABLE != DISABLE, тогда ENABLE может иметь любое значение отличное
от DISABLE и в этом случае ваш вопрос по поводу того, что "условие "= !DISABLE" выполняется всегда</i>" будет корректным.
А что касается записи :
#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
то она избыточна, потому как NewState само по себе будет "булево" и может принимать значение либо только "ноль", либо только "не ноль". А если так, то вполне достаточно записи вида :
assert_param(NewState);
без всяких лишних макросов.