¿Por qué los valores de un OrderedDict no son iguales?

Con Python 3:

>>> from collections import OrderedDict
>>> d1 = OrderedDict([('foo', 'bar')])
>>> d2 = OrderedDict([('foo', 'bar')])

Quería verificar la igualdad:

>>> d1 == d2
True
>>> d1.keys() == d2.keys()
True

Pero:

>>> d1.values() == d2.values()
False

¿Sabes por qué los valores no son iguales?

He probado esto con Python 3.4 y 3.5.

Después de esta pregunta, publiqué en la lista de correo de Python-Ideas para tener detalles adicionales:

https://mail.python.org/pipermail/python-ideas/2015-December/037472.html

Respuestas a la pregunta(3)

Su respuesta a la pregunta