Not explicitly destroying/clearing objects after each round may lead to too much memory usage. The same goes for undo/redo, when a user has a redo queue but draws, the redo queue is not correctly destroyed.
This is especially apparent in the shader-renderer branch, where ShaderPath objects store multiple buffers and other values that may not get cleaned up correctly.