Он влияет на состояние итератора (иначе он никогда не сможет изменить, какое значение он вернул), но обычно он не должен влиять на состояние коллекции, по которой он повторяется. (В некоторых случаях, конечно, данные могут повторяться только один раз - представьте себе поток значений, поступающий с сервера.)
Представьте себе физический список предметов, и несколько человек итерируют по нему. Каждый человек может указывать пальцем на то, куда он попал в списке. Во время итерации их палец будет двигаться (состояние мутации), но сам список не изменится.
РЕДАКТИРОВАТЬ: Как отмечено в комментариях, итераторы могут поддерживать операцию remove()
, которая повлияет на базовую коллекцию, если она поддерживается.