A field missing from POST is reset even if a value exists
A field that's accessible only to moderators is being conditioned during profile edit so it won't exist in POST for regular users, but a value will exist. This however causes it to do a value reset while checking post data causing it to not check against the existing value. Possible solution is to check for edit access of the field using API call. If not accessible then use the existing stored value and don't bother looking in POST.