This is mainly a note to myself to remember to check.... Occurrences are created in the search index for recurring events into the future, but are they deleted from the index as time passes and it's no longer possible to attend them?
The answer will be in SearchAPI -- it calls getItemIds() on a datasource. Does it handle the scenario where an ID it got last time it called that is no longer in the returned list?