I'm not sure that slightly more complex ucontroller archs with DMA engines require AMOs to be coherent with other masters like DMA engines. You normally do a song and dance where you just guarantee that you don't need atomic RMW in the first place, handing off filled in descriptors to the peripherals and getting interrupts on completion.
But interrupts themselves complicate AMOs making them not nops and needing a CLI/RMW/STI sequence.
But interrupts themselves complicate AMOs making them not nops and needing a CLI/RMW/STI sequence.