Bad explanation for generic variable overide priority cause people making the opposite of what is needed
When people try to override generic variable technique with priority, they naturally follow what the "?" tell. But generic variable definition works in the opposite of unique directive (because it is not a unique directive, and so the priority thing is just a hack of cfengine taking the last definition, so the least prioritary one).
We need to special case the "?" for generic variable definition and refer to https://docs.rudder.io/reference/5.0/usage/advanced_configuration_management.html#_special_use_case_overriding_generic_variable_definition for the full explanation.