> If I understand this correctly, we set CLIR mode upon starting up the phone based on the user preference.

This is correct.

> The user preference also gets updated when CLIR mode changes. Which means the user preference stored
> in the settings DB is the real value.

Nope, the real value is the one coming from the network.
 
> I guess it should be okay to refresh the UI based on the users  
> preference? Unless CLIR mode is able to be changed from the carrier side.

The user can change the CLIR mode but this change might not be allowed for the ICC card in use. The carrier might not allow changing this supplementary service. This is the reason why current logic request the CLIR value right after the user changes the value in the UI.