Sweeping an actor: how to enable collision for its StaticMeshComponents?

This question is as old as the beginning of Unreal Engine 4 and I can’t find a satisfying solution.

If I use SetActorLocation(NewLocation, true) to activate sweep and have it collide with other objects - given the actors in question have the collision set up correctly, still only the root component will trigger collisions.

One obvious solution: Make sure that any StaticMeshComponent is the root component of its actor. Problem solved.

Is this still the only solution? Is this best practice?

How do I compose an actor of two StaticMeshComponents and have collisions for both of them?

Bump?