Presonally, I would try to stick to setting this at the Universal Forwarder if possible. I don't think there's a significant processing cost to routing at the other tiers, but once you have a larger environment I think it would be a hassle to figure out why events are ending up in various indexes. I guess my philosophy is that if something can be done on the UF, that's probably the way to go.
That said, I probably wouldn't hesitate to select indexes on the HF or Indexer if I needed to make a change quickly and didn't have control of the UFs. If you ever want to select indexes based on something in the events themselves, such as the raw data, you're going to end up making that change on the HF or Indexer.