When you fire projectile weapons, the projectile follows the path of your crosshairs from when you pulled the trigger, not the path of your crosshairs when the round actually launches.
In other words, even though there is a 'firing delay' before the round actually fires, it fires as though there was no delay.. i.e. at your original crosshairs location.
Here is a video of the behavior and a breakdown of the video timeline:

So in addition to taking into account 'projectile lead' and 'firing delay lead', you also have to take into account the 'original crosshairs trajectory' and time everything so that when the round actually does fire, the enemy is in the original trajectory path.
Talk about a confusing bug!
