¿por qué las cadenas de python no tienen la función __iter__?

¿Cómo es que podemos iterar sobre cadenas de Python cuando las cadenas no tienen una__iter__ función?

$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> "asdf".__iter__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute '__iter__'
>>> it = iter("asdf")      
>>> it
<iterator object at 0xb736f5ac>
>>> 

Y lo que es más importante (sin embargo, las cadenas se repiten), ¿por qué las cadenas de Python no siguen la misma convención que todo lo demás? Particularmente cuando los documentos de Python dicen que la__iter__ se necesita la funciónhttp: //docs.python.org/library/functions.html#ite ?

Respuestas a la pregunta(2)

Su respuesta a la pregunta