I have wondered this myself. I came up with a potential reason for this once but I no longer remember what it was, and I remember thinking it was kind of lame back then.
My hunch is that it has something to do with the color/size/style attributes, which were added to the e-commerce package after it was already completed; I'm guessing that someone thought it was easier to just add new rows all the time than check to see if the product with the options you wanted is already in the order.
Not a good reason, mind you, but the only one I can think of.
Ok, wait, here's another possibility - it probably makes partial shipments easier, since you can just mark each individual line item as shipped or not shipped and don't have to split up a single row. But I haven't checked the code to see if it actually makes use of this.
If you figure it out, please let us know! :)