CPSR
contains more state then just cpu mode.
For example it contains State bit
telling whether CPU is executing in ARM or Thumb mode.
Writing to CPSR without preserving other states would most likely put cpu into an undefined state. Because of this you always do a read-modify-write.
In most of the documents from ARM it is also stated the importance of keeping state of reserved bits for future compatibility.
To maintain compatibility with future ARM processors, and as good practice, you are strongly advised to use a read-modify-write strategy when you change the CPSR.