Нет, они не. Некоторые типы Python, например, все его коллекции, просто поддерживают итерацию несколько раз. Несколько объектов-итераторов могут содержать ссылки на один и тот же список, все они просто сохраняют свою собственную позицию в списке.
Обратите внимание на некоторые эффекты:
lst = [1,2,3,4,5]
it = iter(lst)
lst.pop() # modify the original list
list(it) # the iterator is affected
# [1,2,3,4]
Еще более очевидным является случай исчерпывающего итераторы и вызов на них iter
:
it1 = iter(range(10))
it2 = iter(it1)
next(it)
# 0
next(it2)
# 1
next(it)
# 2
next(it2)
# 3
Очевидно, что итераторы разделяют состояние.