It only empties them, that still leaves loads of variable placeholders
Yes, it's exactly what I said. But it's the only thing we can do now to free some space, mainly when these string/array/dictionary variables contain a big amount of data.
It also was the reason why, at the beginning, I used to use global variables rather than local ones. But local ones are sometimes somehow more "comfortable", more convenient.
Sometimes I also use files to store big enough amounts of data outside MD (without forgetting to free space/clear action before closing macros).