Windows is generally clever enough to reclaim unused space. Unused space will only get returned if an entire chunk is empty, though, which may not happen. Often a big allocation will be carved into several pieces, and if even one of those pieces isn't empty the memory won't get returned.