There's a fundamental problem with this argument. We could have similar discussions on Thermopylae, Stalingrad, Samar, Arnhem, Shiroyama and on and on and on and on...All good and well BUT the stream of enemy actually reached the wagons at points, if you had multiple streams or even sustained streams the cannons could have been spread too thinly to be as effective. Also if the focus of the cannon shifted with the head of the stream the rest could have bulged and broken through in between even if all three cannons had one focus.
I think you over-estimate the capability of grapeshot from ONLY three cannon in the face of thousands of melee troops especially since these were not particularly fast loading cannon unless I am mistaken. They would have delayed but not not stopped a determined push as long as the push remained scattered and loose enough.
People have this idea that it was a tightly massed formation but that likely was not the case.
You also under-estimate the speed at which Impi's could move as well as their maneuverability, they could at short distances easily outpace hoses sometimes.
Even considering the actual casualties, the Zulu gave up before they technically had to. The only real problem they faced was their will to fight being broken, partly apparently because of supposed supernatural activity. There are accounts of the Impi's becoming terrified of "white beings" moving behind the wagons if I remember correctly and this alone made them start to rout at least a few times when they managed to get up to the wagons..... not something you will find in most history books...... I have something about this somewhere at home I think.
The battles have been fought. They're done. They're over.
Theoretically a million things *might* have effected the results... They didn't.
The boers won at Blood River. The Persians won at Thermopylae. The Russians won at Stalingrad. Americans turned the Japanese back at Samar. The Germans retook Arnhem bridge... You see where I'm going with this?