This seems like a non-problem to me. Why not simply reset the settings like this and forget about initializing the default settings in EEPROM at all:
void reset_settings_to_defaults(){
static const settings_type s_default;
s = s_default;
EEPROM.put(0, s);
}
Then you don't have to worry about comparing the settings structures.