Обычно для контейнеров итератор хранит как раз просто указатель, без информации о типе. И это указатель на ноду, которая может быть либо нодой со значением либо sentinel нодой. И сам по себе этот указатель или тип ноды обычно этой информации не несёт, мы просто сравниваем с sentinel (i != end) и всё что не равно считаем нодой со значением. Информация о типе получается через сопоставление.
Прямо сейчас смотрю на stl из VC. Нода таки типизированная и содержит два указателя на ноды а так же данные, итератор действительно хранит указатель на ноду, но он типизированный и итератор реально заглядывает в ноду при работе (это же двухсвязный список, другого способа кроме как прочитать новый указатель из ноды ходить по списку просто нет).