Is it more reasonable to clear SlavePoseComponents in DestroyComponent rather than BeginDestroy

USkeletalMeshComponent* CompA = NewObject();
USkeletalMeshComponent* CompB = NewObject();
USkeletalMeshComponent* CompC = NewObject();
CompC->SetMasterPoseComponent(CompA); // CompC->MasterPoseComponent is CompA, CompA->SlavePoseComponents has CompC
CompA->DestroyComponent(); // CompA->MarkPendingKill()
CompC->SetMasterPoseComponent(CompB); // CompC’s OldMasterPoseComponent is not Valid, And CompC is already in CompA->SlavePoseComponents
GEngine->ForceGarbageCollection(); // CompA->BeginDestroy trigger CompC->SetMasterPoseComponent(nullptr), CompC has no MasterPoseComponent