In my application I have two grids - one for the summary data and one for the detail. The store for the detail grid gets filtered (detailStore.filter()) based on which row is selected in the summary grid. Both of the grids are editable, including removing rows. I have discovered that when a filter is applied to the detail grid, and then the selected detail row is removed from the detail grid (detailStore.remove()), and then another filter is applied and then the original filter is applied again (the one from which the detail record was removed), the detail record re-appears. A workaround is to put the remove() in between clearing and re-applying of the filter, like this:
I took a quick look at the source for Store and I suspect that the issue has something to do with this.data and this.snapshot. I'm guessing that the record is removed from the filtered data, but it doesn't get removed from the total data.