Ah, I actually rely on this behavior in the current implementation.  The cluster-wide rebalancing functions keep a full tally of all operations that have been proposed and apply them to the output of the `rebalance/count_by_node` view to get an updated understanding of final shard counts per node.  I submit the entire set of operations to `apply_shard_moves` and let it only apply the meaningful ones.  Wouldn't be the worst thing in the world to refactor that; just saying that if we error out without refactoring the input it will definitely crash.