I believe the CharacterSubClassComponents are used in the progressiontable.gambundle files, when they are used to determine the visibility of abilities or spells to be purchased. For example, some Wizard spells are rendered "invisible" when a subclass is chosen, as Wizards have restricted schools of magic. An example of that can be seen here:
{
"Note": "PL 2 Unlock - Rolling Flame",
"Category": "General",
"UnlockStyle": "Unlock",
"ActivationObject": "Self",
"AddAbilityID": "e7ba6162-2a17-418e-b523-1e2dc4067446",
"RemoveAbilityID": "00000000-0000-0000-0000-000000000000",
"Prerequisites": {
"MinimumCharacterLevel": 1,
"PowerLevelRequirement": {
"Class": "Wizard",
"MinimumPowerLevel": 2
},
"RequiresAbilityID": "00000000-0000-0000-0000-000000000000",
"Conditional": {
"Operator": 0,
"Components": [{
"$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
"Data": {
"FullName": "Boolean ProgressionTableIsSubclass(Guid)",
"Parameters": ["123383cb-64b0-45f8-a81e-41b7e299aa78"],
"UnrealCall": "",
"FunctionHash": 1231916529,
"ParameterHash": -1985451582
},
"Not": true,
"Operator": 0
},
{
"$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
"Data": {
"FullName": "Boolean ProgressionTableIsSubclass(Guid)",
"Parameters": ["816efb0e-c235-4143-8e5b-9257d053f65d"],
"UnrealCall": "",
"FunctionHash": 1231916529,
"ParameterHash": 1459496531
},
"Not": true,
"Operator": 0
}]
},
"VisibilityConditional": {
"Operator": 0,
"Components": []
},
"IsMutuallyExclusiveUpgrade": "true"
}
}
See the ProgressionTableIsInSubclass call? I'm pretty sure that's where Subclass IDs come into play.