My belief (and not in any way confirmed by the devs at any point that I'm aware of) as to the why and how:
1. The devs want the game to feel responsive. That means, when you press the button to fire, you want to see your ship fire, not some period of time based on your ping time later. Additionally, they want to err on the side of caution. If you might have LoS, it'll go through the motions.
2. Whether or not you actually have line of sight is a server determination. It is in charge. It decides what is real.
So when you press the button, if the client thinks you might reasonably have line of sight, it fires, rather than waiting for server confirmation that it does indeed have LoS and should be firing. If it doesn't get that confirmation from the server within a reasonable period of time, it'll try to fire again.
But it doesn't get rid of any ones that weren't actually fired, as that doesn't look as good in a typical situation (where you see two fire but only one is real). Or possibly the server doesn't have the info needed to tell the client to get rid of it. Of course, it does look a bit silly when you get an entire stream of torpedoes flying toward the enemy.
However, only one torpedo (in a non-HY/salvo situation) is real. The rest are client side only.
It's natural. Some times every well attended captain fires a string of unrepentant torpedoes on the enemy causing an opera of permutating lights, the generic space bbq smell, and the ultra cooled whoosh of starship fragments rushing by you. We move on. We move on.
Long ago you used to fire a bonus torp whenever you crit with a torp. when you would use skills like high yeild 3 where you fired 4 total torps, each one used to have a chance to crit and fire more, meaning you could technically fire upto 8 at a time if each torp crit... sadly that didnt last very long.