Is that a behavior property of the MultipleIterator or because our cursor simply returns NULL when exhausted?

NULL is a valid value when iterating over certain data, so this seems like a bug.
Surely it must be calling ->valid() and then skipping the iterator if its false? o.O