My current, new workaround is this:
var worksheets = viz.getWorkbook().getActiveSheet().getWorksheets();
for (var i = 0; i < worksheets.length; i++)
worksheets[i].applyFilterAsync("market", ["Market One","Market Two"], "replace");
I don't like this at all but it performs more smoothly than reloading the whole viz. It seems like, since the filter is applied to every worksheet, that changing it once would change it globally.