Hello Joe ;)
I believe there's a way of doing this by implementing the filter mechanism in the following way. You can use a non-persistent helper object to capture the selection of the *many objects and then filter the grid based on that. Also the grid should have a datasource microflow where the filtering process is done.
So if you have 1 Car has many Colors. In the non persistent filter helper entity we capture the selection of colors (Via a combo box for example). Then when the selection is done (on combo box on change event, for example) we refresh the helper filter wrapping object which should trigger the datasource microflow in the grid. In the datasource microflow in the grid we use the helper to retrieve the list of colors and for each color we could retrieve the cars which contain that color. At the end we can apply the union operator (list operations) on all the lists and the result should be okay.
Hope this helps.