Don't iterate if any list in the iterator is empty.
Revert change of semantics in set differences.
Keep cf_null in empty lists.

Otherwise, the rval's item becomes the null pointer, which violates
assumptions throughout the evaluation stack.
More test cases