This is kind of expected behavior. If you don't set a value, it will fall back to the server.
Sure but shouldn't it display the Server Value in the user setting as opposed to saying the setting is True?
Ideally it should have some "undefined" state.
I guess you could communicate that in the UI by needing to add it similar to how Server Attributes are added.
Server setting is Show Geofences: False
Create a new user and the User Preference defaults to Show Geofences: True. However Geofences will not display.
Disable the option, save the user, then enable the option and save again. Now the Geofences will display for the user.