I think this code relies on non-specified behavior: reusing an iterator. Indeed, the repl violates what you are assuming:
```scala
scala> Iterator(1, 2, 3)
res6: Iterator[Int] = non-empty iterator

scala> res6.take(1).toList
res7: List[Int] = List(1)

scala> res6.toList
res8: List[Int] = List(1, 2, 3)
```