I didn't dive into what exactly you are doing, however I want to teach a method that reduces the number of indexes, while keeping the added indexes the same -> precomputing properties
Instead of running a query for a=1, b=2, c=3 - you can query abc=1|2|3 instead by creating a pre-computed property called abc - you can also query for a=1 by querying abc=1||, or query for a=1 c=2 with abc=1||2
You can adjust the format to suit N properties the way you like
When my indexes get close to the 200 limit, I use this method to reduce the number of indexes while keeping the complexity/cost the same (so basically it's just to tackle the 200 limit)
-----
It's also possible to not add exact indexes for each query, and let the system compute things on query, which is logical for non-frequent queries, as complete indexing is very costly (also as far as I remember, the upper limit for indexes of a single entity was something like 5000)
The simplest way to do this is to use --require_indexes and let the sdk suggest the minimal index, while having a general idea of how indexing/queries work
-----
I've just read your question better, my information seems a bit unrelated for the exact question you asked, yet it's very logical to use --require_indexes and handle the index-logic on development, otherwise you have to digest each index usage after the development is near-completion and do it at once, it's better to do it on-usage/development
-----
Just disregard my answer if you were looking for a more-spot-on sdk feature/answer