I am surprised nobody has mentioned the reason ...
Consider this:
A block is a non-graphical collection of objects defined in the block table;
An insert (commonly called a block) is the graphical representation of the block, thus for every insert in the drawing, you are essentially adding one element .. an insert;
Now, lets assume your block has 20 graphical elements, when you explode one insert, you ADD 20 graphical elements to the drawing, along with the 20 non-graphical elements (remember, block table entries don't display until they are "inserted");
So now lets assume you have 1000 inserts with 20 elements each and no other graphical objects in the drawing. For simplicity sake, we'll say your drawing has 1020 "entities" defined (nevermind it actually has many more .. teststyles, dimstyles, plot settings, etc...) but I think you may get the picture.
Now lets explode those "blocks" .. you now have 20020 (1000 x 20 + 20) graphical entities in the drawing ... considerably more than the original 1020. That adds a significant amount of overhead in the drawing.
If you now purge that drawing, you will reduce the number of elements by 20 (those in the defined block) so you will now have 20000 elements. Still a huge number. This is the reason why a block (aka insert) is so powerful in drawings in that it can significantly reduce the number of things the software had to track.
Think of it as substitution ... you are essentially telling the software "Wherever you find this one 'insert' element, substitute the 20 elements located in the block definition."
Just imagine if your block had a few hundred elements and you had a few thousand of them in your drawing ... it could grow pretty unwieldy very fast.