The table selections seem to be primarily tied to the physical row rather than the logical row. Let me give some examples.
Select row 3. Filter/requery so the current row 3 is no longer in the result set. Row 3 is still selected, just with a different record.
Select row 5. Filter/requery so that there are only 3 row. None are selected. Remove filter and row 5 is again selected.
The user would expect that the logical row either remains selected between requeries and filters, or the selection is cleared. This can be done with some extra work on our part, but should be default behavior.