In BOOLE, classifiers in an action set shared the available payoff according to the setting of a parameter G. If G = 0, they shared equally. But if G > 0, classifiers that were formally more general--i.e., had more #'s--got a greater share. Setting G > 0 caused the system to emphasize formally more general classifiers.
As a consequence, in many payoff regimes, BOOLE would tend strongly toward overgeneralization, regardless of a classifier's accuracy. Only if the regime gave a "penalty" (a strength reduction) for "wrong" answers did overgeneralizations get corrected. Under such regimes, BOOLE was very successful at evolving good classifiers. But without penalties, the generalization pressure "overshot".
This does not occur in XCS, since fitness is based on accuracy, and an overgeneral classifier is by definition not accurate! However, XCS will push toward accurate general classifiers because general classifiers have more reproductive opportunities, since, as described in Section 4.1, they occur in more match sets.
Thus XCS's generalization pressure is based on frequency of match in the environment, and could thus be termed "adaptive" or "intrinsic".
So this is essentially an intrinsic reward for generality (as opposed to the more extrinsic G parameter used in your BOOLE program). Is that right?