Cross Stream relationships (repos) would not be the recommended way to go. The best option would be to have separate Model Branches.
Absolutely you can store a structural object that could then reference source objects by ReferenceId we have a Speckle Base class precisely to enable such workflows. It isn’t the direct equivalent, but you can see the mechanics behind it here: Federating Speckle Models - #6 by jonathon
Analysing the relationship graph from spaces to objects is definitely in Topologic’s arena. @Wassim_Jabi himself explored combining the library with speckle data exploration last autumn: Having trouble with getting authenticated App when deployed remotely - #8 by Wassim_Jabi
I think you’d be storing relationship data as an object of its own and, as I say, storing reference within it rather than augmenting BIM objects, but that is possible too.