Indeed. On a somewhat related note, frameworks like Symfony tend to create empty exception interfaces which allow them to have a custom InvalidArgumentException (for instance) that extends the SPL class and implements their interface. Then, userland code can easily catch an exception specifically from the framework if need be.

In our case, the MongoCursorInterface would just ensure that we have an iterator for MongoDB results.