I propose that each time a new variant is generated from a product definition it keeps the same family name as other variants from that product definition, but gives a new family type. At the minute each time a variant is generated it creates a new family name in the form of _1, _2, _3 and so on. This way you have numerous different families in Revit each with 1 family type.
What I propose would result in for example;
10 variants of a product definition, all with the family name in Revit "Assembly 01". All 10 variants then have different family types that can be driven off the model, different in the form of the _1, _2, _3 that currently occurs for the family name.
This solution is a lot cleaner for the Revit user, with only 1 Revit family per product definition, and numerous family types that are customizable upon generation of a new variant.