Non-destructively joining meshes
Array Modifier

If I want to join A with B, I can add an Array Modifier to A with zero count, using Object Offset with B and setting End Cap also to B.

Drawback

If A is not centered, scaled or rotated, the two B objects will not align.

Workaround

I can add a C object and use the End Cap method two or more times, with A and B and other objects I like to join together.