I can think of at least one other reason for doing the zeroing.
If you have to do any form of recovery, it helps if the previous data is not there at all.
That idea goes both ways :-) When people accidentally format the wrong partition, and did not have a backup, having zeroed out the drive to "help" in the case of a Future recovery of the new information, the old stuff is lost forever. Because of that it does not sound like a thing to suggest to people to do :-) but you understand.
I Had applied the zeroing to an In-Use drive before also. To zero out everything that is not presentaly in-use at the time. A very scary operation, but I do have a backup.
After defragging and re-ordering a drive, I Would then have a program (restoration) Zero out the whole of the rest of the "unused" sectors (actually deleted previously and unused). By doing this not only was the data more sequential for any recovery without file tables, but the old data was all permenently deleted. Anytime that I needed to un-delete something , the list of leftover junk was much smaller, so even if I did not know the actual file name, the pile of stuff recoverable was much smaller.
If somehow all the file tables were corrupted, the mess of stuff to recover would not include another ton of old junk because it was removed by zeroing.
I apply that method way less now than before, because of the extensive time it takes to clear everything out when it is terrabytes not just many gigabytes.
Despite what some would say that defragging is snake oil with modern systems, lets just say that having "more sequential" data helps in transfer speeds when all the rest of the bottlenecks are not the issue. Zeroing out the drive does not change the methods used to write the data more or less sequentialy, but a full defrag can. (and that all depends on how big a mess it becomes) Some defraggers would finish by clearing out the deleted stuff by zeroing also.
Does it improve speed, I have never observed any actual difference in speed at any time , from overwriting old junk vrses overwriting zeroed out. There is no reasons that I know of to zero out for the purpose of speed. (hopefully someone else will cover that). Windows has funny ways of finding empty spaces and writing to them sometimes, but to windows any space marked as available is fair game for overwrite.