Другими словами, std::atomic<int> гарантированно удерживает только одно значение int?
Ответ 1
Нет.
В абзаце 29.5/9 стандарта С++ 11:
[Примечание: представление атомной специализации не обязательно должно иметь тот же размер, что и соответствующий тип аргумента. Специализации должны иметь одинаковый размер, когда это возможно, поскольку это уменьшает усилия требуется для подключения существующего кода. -end note]