It's because `_sortedFullSet` and `filterSet` are separate arrays. We've removed it from `_sortedFullSet`, but we need to recalculate `filterSet` based on the updated `_sortedFullSet` in order for the view to actually see the removal (since `filterSet` is what the view is reflecting). It would be more efficient just to search for it in `filterSet` and remove it directly, though--I was just thinking of the add and removal cases as conceptually the same (update the full list, then refilter it to update the currently filtered). Could go either way.