Python devuelve una longitud de 2 para una sola cadena de caracteres Unicode

En Python 2.7:

In [2]: utf8_str = '\xf0\x9f\x91\x8d'
In [3]: print(utf8_str)

In [4]: unicode_str = utf8_str.decode('utf-8')
In [5]: print(unicode_str)
 
In [6]: unicode_str
Out[6]: u'\U0001f44d'
In [7]: len(unicode_str)
Out[7]: 2

Ya queunicode_str solo contiene un único punto de código unicode (0x0001f44d), ¿por quélen(unicode_str) devolver 2 en lugar de 1?

Respuestas a la pregunta(1)

Su respuesta a la pregunta