Attaching new patch which, as per Yonik's suggestion, doesn't refine facet counts when minCount <=1 and sort == false.
Regarding the term order problem, I think it might be best to redesign the whole thing. Term order as such probably doesn't make a lot of sense, it's really used to get the terms in alphabetical order. So why not drop term order altogether and introduce lexicographic order instead. This probably also means changing the facet.sort parameter from a boolean to a string – "count" or "lex".
This would mean that the same query will return the same results for both distributed and non-distributed setups. The downside is that the facets always need to be sorted (i.e. more computation), but according to Wojtek's measurements this seems to be neglible.
If this seems like the right direction to go to, we should probably open another issue for this.