Only way I can see to do that is have 2 additional dropdowns that are hidden from profile edit/registration, but are searchable that store their values using CB Auto Actions. I don't really see any other way to do this than store extra information. You can use the below usage to handle this behavior, but you'll need to write the necessary PHP or SQL yourself for converting their selected occupation into the other 2 categories.
Global
Triggers: onAfterUserRegistration, onAfterNewUser, onAfterUserUpdate, onAfterUpdateUser
User: Automatic
Access: Everybody
Conditions
Field: Custom > Value
Custom Value: [var1_FIELD_NAME]
Operator: Not Equal To
Value: [var3_FIELD_NAME]
This compares the new value in var1 with the old value in var3 to see if the field changed values. If you also want to make sure the field even has a value then add the below condition as well.
Field: Custom > Value
Custom Value: [var1_FIELD_NAME]
Operator: Not Empty
Be sure to change FIELD_NAME to the actual name of your field. The triggers for the above are explained as follows.
onAfterUserRegistration = frontend registration
onAfterNewUser = backend registration
onAfterUserUpdate = frontend edit
onAfterUpdateUser = backend edit
You can use this with any action type. For example a Query action to update the _comprofiler table, a Field action to update a fields value, a Code action to perform some PHP operations and store a value to the user.