AVR Sleep Mode Clarification
When you disable a peripheral, you can turn it on with one instruction and resume it - meanwhile all resources used by this particular peripheral are freed and you are free to use them. When you turn the clock off you put the peripheral to wait - its resources can't be freed, since it requires a clock pulse to execute clearing instruction. Only thing you could do is turn the clock signal back on and resume using it.
Race condition mentioned concerns pipeline stages in your CPU. To keep things short - your CPU processes more than a one instruction, and using correct variable values is based on when the instruction was fetched and decoded. If you modify one register/variable/bitfield sequentially with different instructions, there is a chance, that one of the instructions in given sequence would fetch a value before its processed by previous instructions, changing the output of operation, and therefore state of the circuit as a whole.