For one thing, PB 10 and higher are Unicode while PB 9 and lower are Ansi. Every String or Character variable is going to take up twice as much memory. That includes all string properties of windows, userobjects and datawindows.
When a window is closed or other object destroyed, the memory is not released back to the operating system. PB grabs a chunk of memory and manages it's use internally. If it needs more memory, then it grabs more. When objects are closed, the used memory is freed internally but not released. This makes object creation much faster.