It seems some people have issues with instant kill raycast weapons which I suppose is a reasonable criticism. But shouldn't it be fairly simple to use the original raycast as a range finder, divide the range by a constant that represents the velocity to get a time delay, then run a second raycast after the delay to kill? You bypass the universal projectile speed limit and get a gun that shoots bullets at a fair speed instead of instantaneously. It should work fine for non moving targets. I've got a couple ideas for dealing with moving targets and stuff getting in the way of the bullet, but it's late at night and I'm not a programmer so they'll have to wait.
Another cool thing is you could factor in is sever variables for different ammo types with different velocities and damages, as well as variable wind direction (players could figure it out by watching bullet impact or placing a windsock brick or something). You could also have different impact particles, like dust on terrain, plastic chunks on bricks, blood on players, etc. I'm not sure if you can do this with normal projectiles.
Anyway, any thoughts?