I dont feel confident in my knowledge of Houdini/Solaris, probably there will be some stupid ideas in my question, please forgive me in advance and point to a right way. And sorry for a long post, as you may see from the amount of text - I am really bad at optimization

Intro>
I've built a city in Solaris. Its made out USD files - there are around 30 different USD files, each one is a different building, and there are around 8 variants in each USD.
City was built manually - it need to have a very specific look, so I cant go with abstract 'copy to points' design.
Scene composed from couple dozen of Stage Manager LOPs grafted together. Each Stage Manager LOP basically is a city quarter, it contains a couple of dozen of different USDs. After each Stage Manager LOP there is a Set Variant LOP. Additionally to the hundreds and hundreds of buildings there are another elements like set/street dressing and environment elements.
While all my USD files have very simplified proxy for viewport preview it is still very heavy assembly. Houdini crashes every second time when I am trying to load or render all the scene.
So now I am thinking of ways to optimize my scene.
My plan>
I understand that dozens of Stage Manager containing the same USD files again and again is not a proper way for instancing. It was a forced choice to get a specific look. Now when the look/composition is achieved maybe I can transform it to instancing by 'copy to points'.
I can add a point to each original USD file, this point will have a unique name and will be placed at null of each building. Then I will extract all these unique points from all the Stage Managers grafted together. These points will have a coordinates, orientation and unique name - so now I can copy to point my USD files and will have the same layout as before, but it will be made only from 30 instanced files.
What do you think of my plan? I would appreciated any other alternative advices.