Rethinking instancing in general might also be a part of this puzzle, as blocks, families, datatables, instances are all the same pot - I posted elsewhere on the forum about the amount of time spent diffing an array of instances ( Many long calls to /diff/ endpoint? - Help / Developers - Speckle Community).
Potentially, allowing an object on the server to be a list you can index into (server.url.com/projects/projectId/models/individualObjectId/key) , so you could keep the benefit of isolating individual objects, while minimising the pushing/pulling/diffing?