Он атомарен на уровне процессора (прерывание не может операцию разорвать посередине), но не на уровне периферии (для нее это именно RMW). Потому и делают у периферии флаги, сбрасываемые записью единицы.
Не надо делать мне как лучше, оставьте мне как хорошо