Seems this workflow must work: very speedy & simple
A = Big Box
B = Little Boxes
A Boolean Diff by B (Keep objects)
B Boolean Diff by A (Keep objects )
Move A or B as you want as following result wished
A Boolean Diff by B (Don't Keep objects) Of course you can save the Cutting objects inside a library if wanted before last Diff...
A & B are stay "solids" along the process!
And no need to script ;)

|