This is not the case though, unless special care has been taken to design a custom SubSequence for this purpose, and AFAICS the only way for a SubSequence (or any other code construct for that matter) to make a multi-pass sequence from a single-pass sequence is to store all the elements that need to be multi-pass.
So when reading or writing code, not only do we have to keep in mind that there can be multi- or single-pass sequences, but also that a multi- or single-pass sequence can have a multi- or single-pass SubSequence
.
I think this is yet another good example of how hairy this is, and how the hairiness only becomes fully visible once we actually start to work with and think about single-pass sequences.
I share the concern voiced by @dabrahams in the following quote from @dwaite's very informative summary of the previously mentioned mega thread on this topic from 2016:
Dave Abrahams’s primary concern about the existing system is that the restriction that Sequence is single-pass is not intuitive, and that generalized functions over sequences would be tested with the commonly-available Sequences, all of which are multi-pass.
Of course, I don't know if he has changed his mind about this since then.