I've come to face this issue time and again and I haven't yet found a solution without having to compromise something.
This scenario applies both to admin and front end.
There seems to be a lack of an efficient way to filter Entities according to some of their properties and/or fields.
In my example I'll use Users as my entity.
In multiple occasions I've had to filter users. Either to reference them to a node (entity reference), or to perform a bulk operation (front end - invite them to something or send them an email, doesn't really matter). The requirement would be pretty much the same: A view-like presentation with exposed filters that would allow for an operation to be performed to the selected Entities.
I am aware of Views Bulk Operations but even that lacks flexibility in this aspect, as it "resets" the form in each trigger of the exposed form.
If, I wanted to send an email to all the "Johns" and "Marys" on my user base, I'd have to filter against "John", select the users that are presented to me, and then filter against "Mary", select all the users that are presented to me, again, and then, either press the submit button or reset the filter to preview my selection.
Thing is that after the (ajax or not) exposed filter submission, the "John" checkmarks are lost, and if I Clear the exposed form, so are the "Mary" checkmarks.
The exposed form submission simply fetches a "fresh" view-form with it's rows filtered accordingly.
On the backend (entity reference) there seems to be some work by the entityrefence_view_widget module but it's still in the makings.
My question would be: How do you tackle such an issue when you face it in your projects? Is there a way I am not aware of?