I think the sparks close to the battery is a possible explanation. Another reason is to minimise the resistance in the jump-lead circuit. A starter motor draws 600 amps plus which gives it a resistance of around 1/200 ohms. An extra resistance of 1/00 ohm in the circuit path can cause a volt drop serious enough to hamper starting. There is usually not very good access to the starter motor itself to connect a jump lead to, so you really have to connect the positive to the battery lead. The starter motor is bolted firmly to the engine block, so that is the best place to connect the negative jump lead if you can find a good, clean place to connect. Connecting to the bodywork relies on the earth-link from the block to the body being very clean and uncorroded.