You can unlock component primitives, place an object, select it, and add it to a component (Tools/Convert/Add Selected...). Basically editing the footprint in situ. Remember not to update from libraries, which will revert such changes.
You can also use a Union, to stick together objects, in a more limited way than a footprint. You won't get parent strings though, of course.
You can enter variant-specific parameters on the Variant Management dialog, though you can't also use component-specific parameters, if that's what you're thinking (i.e. some expression involving both -- other than trivial substitution i.e. '.Designator in variant .VariantName' or whatever).
Tim