Completely guessing here, but it might be a tool thing. For example it's roughly what happens when I merge your code with git and then push it to subversion with git-svn.
What you describe is a probable scenario, but I think the real reason is in the patch process. Contributions in python don't appear to happen pull request style ("here's my repo with my changes, please merge that in"), but rather through submitting patches ("here's a .patch file with my changes, please apply that to tip").
So what happens isn't that someone with write access merges in changes (which, unless tools get in the way, should preserve authorship), but applies the patch - which attributes that code change to the person applying the patch.
Looking into it today, it seems what a patch looks like depends on the tool. Git by default (using a command like git format-patch) adds a From: header value that contains the original author. Mercurial (using a command like hg export) includes the original author, but it shows up in commented lines.
However, looking at the devguide (http://docs.python.org/devguide/patch.html), they tell you to run hg diff, which creates a barebones patch file with no author metadata.