I increased the interval between allocation, free and termination to make memory changes more visible in the diagnostic session. I also took snapshots before allocation, before free and after free. This is what was displayed.
So the memory is being freed when delete is called but the display you are looking at doesn't clearly reflect the activity due to the short lag between free and program termination.