[Kevin Jacobs, working hard!]
I don't know what causes this. The little time I've been able to spend on it ended up finding an obvious buglet in some new-in-2.3 gcmodule code:
for (i = 0; i <= generation; i++) generations[generation].count = 0;
That was certainly intended to index by "i", not by "generation".
Fixing that makes the gc.DEBUG_STATS output less surprising, and cuts down on the number of collections, but doesn't really cure anything.
Note that bound methods in 2.2 also create new objects, etc; that was good deduction, but not yet good enough <wink>.