Python retorna tamanho 2 para uma única cadeia de caracteres Unicode

No 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

Desde aunicode_str contém apenas um único ponto de código unicode (0x0001f44d), por quelen(unicode_str) retornar 2 em vez de 1?

questionAnswers(1)

yourAnswerToTheQuestion