@huonw pointed out that types like Vec that peddle in deinitialized memory must have a way to eliminate stray references. The allocator can initialize memory when it is given out initially, but can't handle the case where data was pushed and then popped.
cc @pnkfelix