When firing a weapon that has a defined initSpeed that is different from the initSpeed of the loaded magazine, the zero will be off. This can be seen in this video: http://www.youtube.com/watch?v=JTuDu5GGNmk where it is demonstrated that the round exits the muzzle on the path calculated for the magazine initSpeed to reach the selected zero, but with the muzzle velocity of the weapon's initSpeed.
With an undefined weapon initSpeed (0 or -1) zero calculations are correct. Also if the weapon initSpeed and magazine initSpeed match, zero will be correct.