In my opinion Robert there is nothing bloated about the drawing per se.
Let's start with a simple point. Without an extension dictionary or xdata, a point requires about 63 bytes of storage space (entity type, coordinates, layering info, color etc).
Your drawing sports 457162 entities in modelspace.
Using a nominal 63 bytes per, that yields a drawing close to 27.5 MB (disk image will be bigger), so the 42 MB is reasonable assuming the majority of entities in the drawing are more complex than points.
Having said that, of those 457162 entities it's quite possible many of them are bogus / superfluous -- it's not too much of a reach to assume it could duplicated / superfluous instances of some of those 478 anonymous block definitions. Please note that the number beside the block name in that report identifies the number of entities defining the block, not the block instance count.
What does this statement (sslength (ssget "x" '((0 . "insert")(2 . "`*U*")))) return?