Yes, you are right about the requirement to drop vias between 2 overlapping shapes, I do not need to know the net in order for the vias to be created. However, I would like to automate some of the via dropping without user manually clicking on those intersecting areas, and only through net connectivity will the code be able to know where to drop these vias.
Of course, making a simplified via dropping function that traverse hierarchy is the first step i.e. ignore net connectivity. After that I'll see if I can extend this function to account for net connectivity.
Thanks for your feedback, working in "scratch" cellview is definitely the way to go if I do flatten or yank the design.