Очевидно, поэтому в стандарте расписали пункт 6.6 "Constant
expressions" и отдельно указали, что можно в инициализаторе: https://busybox.net/~landley/c99-draft.html#6.6
#7
More latitude is permitted for constant expressions in initializers. Such a constant expression shall be, or evaluate to, one of the following:
-- an arithmetic constant expression,
-- a null pointer constant,
-- an address constant, or
-- an address constant for an object type plus or minus an integer constant expression.