Olha só, oq acontece na verdade é que o Iterator é um padrão de projeto. É útil pra resolver um problema recorrente de forma rotineira, tornando-se assim um padrão. Mas enfim, “sem expor sua representação interna” significa q enquanto numa lista vc tem acesso a modificá-la internamente(expondo sua representação), num iterator vc não tem. É possível apenas “ler”, digamos assim, os elementos da lista correspondente.
Com o tempo, vc usando o iterator na prática, o “sentimento” desse design pattern vai ficar inato… =P