thanks. Indeed, in general, you would aim to include as many filters (or controls with a preset-selection) as you can, so that the queries visit the minimum amount of documents in Elasticsearch.
- they are merged together in a big "and" clause. So there is no precedence perse. Rather, they are evaluated in the order that Elasticsearch seems most fit.
- no, filters do not independently hit the data-stream. they are handled together
- Yes, there are multiple caching layers inside Kibana that attempt to avoid running the same queries redundantly. However, as a dashboard-author, you likely will not be able to leverage these directly. They are primarily helping to optimize the editing experience (e.g. while editing a chart, changing settings, ... you do not want long running queries lock up the experience).
- no, there are no performance gains because all filters are run together anyway, whether they are stored in the saved-search or in the visualization. The only thing you would use saved-searches for is to improve the overall design (e.g. if you do not want to repeat a filter over and over again in each visualization).
Another tip I would give is to ensure the default time-range is as small as possible. Long time-ranges are often a way that long-running searches sneak in.