Valgrind has a nice option --freelist_vol which is the total size of blocks to hold on the freed block queue. It does this to help detect double free errors.
Where in Wine's heap would one want to keep a free list like that? My first idea is to just add another element to the freeList array; rather than putting freed blocks into the normal element by size, they'd all go into the purgatory element until it filled up, after which they would be transferred to the normal free list according to their size.
(Now off to ride the new light rail. In Los Angeles, any time they open a new one, it's cause for celebration... you kinda have to go there and see if some of the improbability will rub off on you.)