I'm in the process of getting rid of a lot of instances of expression bindings where tag() was used. I'm creating custom properties and then changing the tag reference to used that.
Some of my views need a few tags that come from the same UDT. Consider a UDT instance that has 5 tags, I need 3 of them. Is it better to create 3 indirect bindings to pull those 3 tags in, or is it better to create a single indirect binding and pull all 5 into an object? Is there a crossover point where one is better than the other?
I always only pull in the things I need. Unnecessary bindings and data in a client cause slowdown to your rendering. If you aren't using it, then it shouldn't be there.
We often use the module's iteration expressions to build a flat list of tags to subscribe (sometimes thousands) and then pass them through tags(). Then transform them again with those iteration expressions to format for something like a Perspective table or loading into a globalVarMap()