Currently, with safemode being tied to individual SCMs not with the HA state itself, it might happen, a leader out of safe mode , serves client requests and then a leader election can happen which might elect a SCM node which is not out of safe mode, can get elected as a leader being in safe mode itself. In cases as such, when a node gets elected as a leader being in safe mode itlsef, client requests will start failing with Safemode exception although, initially, requests were served successfully by the old leader which was out of safe mode. The idea here is to avoid such experiences.
The simplest solution to avoid such scenarios to the best extent is to assign priorities to SCM nodes depending upon the safemode status and altering the priority accordingly. These priorities will ensure a node in safe mode does not get elected if there are other nodes in the ring which are out of safe mode.