The reason Projectile->Terrain collision is handled by the client is because checking all collision for every players shots on the server would be extremely computationally expensive. Things like enemy and player hits are handled by the server because they require i high level of integrity but your projectiles hitting a wall is handled by the client to avoid the issue mentioned above.