__builtins__.dict.__init__ と __builtins__.dict.update は __builtins__.dict.__setitem__ を経由していない模様

>>> class D(__builtins__.dict):
... 	def __setitem__(self, k, v):
... 		print k, v
... 		super(D, self).__setitem__(k, v)

>>> d = D(a = 0, b = 1, c = 2)
>>> d.update(d = 3, e = 4, f = 5)
>>> d['g'] = 6
g 6

どうしろというのか。python 2.5 では変わっているのか、私の認識がおかしいのか。