Firstly the issue title and your real question I think is a bit misleading, thus I don't see the real relation between them (at first look).
IMO I would pass the object if it't not so heavy, and a simple model, and use #[Locked] on it in child, to prevent any malicious data manipulation between queries.
And as a mandatory step, when looping the over parent property of child components, passing the :key on it to keep track of them.
IDK what the pivot datas consists and what losing them actually means. That's correct that the action is isolated for a component. But I'm not sure that refreshing the parent makes it efficient.
Providing some essential code would help a lot.