It's for MSP430, and seems to be oriented in single core embedded microcontrollers. Those things have no atomic operations, other than disabling interrupts.
You'd be right for multicore chips or if data type is larger than word size or if data is not aligned.
But in this case, this code is correct for this architecture. All of those things you mentioned are perfectly normal and acceptable when programming microcontrollers.
http://www.simplyembedded.org/tutorials/msp430-architecture/