That's all right.
Indeed these SPARQL rows do not have any corresponding domain object, why should they?
However, in order to compare out the differences between a 'seen' SPARQL result and a 'not-seen' SPARQL result, we need every row. So each item contains a row.
Having the rows stored, one can extract the datasets faster than re-evaluating the SPARQL request and one can compare two results and tag particular rows as 'added' or 'removed'.