There is server-side verification of client-side hit detection, which I believe to be the best of both worlds. With client side hit detection, what you see is what you get. Your bullets instantly go where you are aiming them, we can trigger feedback earlier and there’s no need to lead targets based on latency, it just makes playing feel much more responsive.
The server-side verification doesn’t need to be quite as accurate, but essentially it makes sure that it was possible for you to see your target (and be in range of them) around the time that the bullet was fired. There’s a little wiggle room here to account for reasonable latency, although going into more details here wouldn’t be too smart
Also, players who are dead server-side but not yet on their clients (haven’t received the notification from the server yet) have a very short grace period where bullet that they fire (before they die client side) will still count. This is to prevent people firing bullets during this time and having them disappear, and while it does allow for the occasional double-kill this period is limited to avoid crazy high pings causing big delays.