It looks like when you call filter.getBackingList().add(new item), the new item will be displayed regardless of the filter value.
For example: there's a table with two rows, with column x having values 1 and 2. We filter column x to only display value 1. Then we receive a new item "3" to add to the table, and it gets automatically added to the filter dropdown as a pre-selected check box. Now the table displays that column x is still filtered, but shows 1 and 3 in the table.
This looks to the user like their filter is being ignored, since the new value obviously doesn't match "1"
I tried to hack up a workaround to this (get all of the filter selections before an add operation is attempted, then re-set them afterwards) but can't because the class FilterValue that comes off of getFilterValues() isn't a public class.