This has plagued me for some time as well, and I have come up with a few solutions, but none of them ideal. Especially if working with assets that others have made.
- Turn the gun orientation slightly towards the center of the screen, so the projectiles that come out of the sockets actually follow the right path to the cross-hair.
- Completely fake it by using only hit-scan with a very fast muzzle flash that shoots a (very fast) fake projectile, and using a hit effect that incorporates the fake projectile as well.
- Using a big barrel for projectile weapons, and covering the shot with a lot of smoke and/or effects (think of a rocket launcher).
- Use iron sights that actually line up with the canter of the screen (the most common solution and seemingly favored solution by most developers).
- Use super speed so the eye can’t follow the magical path that has to be taken by a projectile fired without any of the above tricks.
What do the rest of you do? Anything different? I find this subject to be very interesting, for many reasons.