Reading that flattened image from PSD takes 20 lines of code, while reading the structured content and producing final composition (blend modes, layer styles, masks, adjustment layers ...) takes at least 20 000 lines of code.
Row length encoding is used for storing channel data by default, so area with a constant color can be compressed much more efficiently, than area which has more "noisy" content.
Instead of a white top-layer you could also disable the "Maximize compatibility" option when saving the PSD, which will strip out this full size rendition.
I do know that Maximize Compatibility doesn't affect usage within Illustrator and InDesign documents, though, which to me are the more common use cases for a PSD anyway, so I'll probably stick to unticking that box.