Index lookups use binary search, so you should filter on most select indexed columns first. This supports high cardinality columns being indexed.
Furthermore, if you range partition on the high card column first, then the dictionary will get split across multiple segments, not duplicated across all segments, since the high card data is strictly sorted. This probably helps more in smaller segment sizes than index lookups.
Last point ... there is recognition that sometimes your initial filters are selective enough that there is a point where you should stop doing filtered lookups, and instead render the rows and apply the final filters as a "row scan". There are some filter optimizations that were added earlier this year along those lines, and should automatically be used. (
https://github.com/apache/druid/pull/16292)