Not true, friend:
AttachActorToActor
AttachActorToComponent
AttachComponentToComponent… etc
If you are creating them runtime, assign the reference to a variable then manipulate it there.
Composing an actor with component functionality as you outline is what UE5 is pushing as best practice. You echo exactly their thinking on the limitations of inheritance… just dig a bit harder and you are right there.