I'm trying to understand what exactly each operation's spliterator is iterating over. Please correct me if I'm wrong: (I'm most likely wrong)
Yes - it is the same spliterator. Only a single spliterator is created from the source of the
Stream (there could be many Spliterators in case of parallel processing).
It is the result Collection (the one from the terminal operation - which might not be a collection at all -
count, etc) that the elements are omitted from.