Ответ 1
Стандарт позволяет иногда блокировать тип.
раздел 29.4 Свойство без блокировки
Макросы ATOMIC _..._ LOCK_FREE указывают свойство блокировки для соответствующие типы атомов, с подписанными и неподписанными вариантами сгруппированы вместе. Свойства также применимы к соответствующим (частичные) специализации атомного шаблона. Значение 0 указывает, что типы никогда не блокируются. Значение 1 указывает что типы иногда блокируются. Значение 2 указывает, что типы всегда блокируются.
атомная бумага С++ n2427 объясняет причину:
... В предложении чаще всего выполняются функции запроса без блокировки чем константы времени компиляции, поскольку последующие реализации платформа может обновлять операции блокировки с помощью операций блокировки, поэтому обычно для систем абстрагировать такие объекты за динамическими библиотеки, и мы хотим оставить эту возможность открытой. Более того, мы рекомендуем, чтобы реализации без использования атомной поддержки эта техника....
А также (как Джесси Хороший указал):
В предложении предусмотрены функции блокировки запросов для отдельных объектов, а не для целых типов, чтобы разрешить неизбежно смещенные атомные переменные без ущерба для производительности согласованных атомных переменных