IIRC, according to the concept of undo/redo in general, your "stored undos" would be cleared if you were to do another action after undoing. For example, if you placed two bricks, deleted both of them and placed another one, you shouldn't be able to redo. That would fix the issue of bricks inside bricks, I'd imagine.