A friend of mine just ran into the need to iterate over entities with a component, but not wanting to borrow the component store during iteration.
Right now the only way to do that is to resort to using entities.iter_with_bitset() and manually combining the bitsets from the components. We should implement some kind of QueryItem that allows you to use the normal entities.iter_with(), but without actually borrowing the component store, if possible.