C89 говорит, что это
интегральный тип объекта, к которому можно обращаться как к атомарному
сущность, даже при наличии асинхронных прерываний.
volatile не указано, возможно, потому что классификаторы были новой вещью, когда был разработан первый стандарт.
C99 добавляет «возможно, квалифицированный как волатильный.
Я полагаю, что это обратная совместимость с тех пор, в сочетании с "никого не волнует достаточно", поскольку обработка сигналов является относительно незначительной частью большинства проектов.
Также кто-то может предположительно использовать его в контексте, где volatile не требуется (например, для хранения копии флага, используемого для связи с обработчиками сигналов), а в не-GNU C (опять же, с обратной совместимостью) в принципе невозможно сопоставить тип с менее квалифицированной версией этого типа, что делает реализацию, которая выбирает опускать квалификатор, более гибкой.