Whenever I use a shotgun I'm tempted to record a compilation of what I called in BF3 the "SPAS TO THE FACE" syndrome.
Really, a lot of the problem is just the TTK is SO goddamn low, that any desynch at all is super noticeable. .2-.3 seconds plus reaction time is not a lot of room. Combine that with network updates in 100ms intervals, and there is going to be a huge disconnect with what you see and what the server sees and there's no helping it. But if it took 20 bullets to kill someone you wouldn't really question it. It would sort itself out and you'd never be able to tell. Who bitches about netcode in WoW? It's still a factor, you just can't notice it.
Prior to the "fix", there were tons of kill trades because if you shot them on your screen and they shot you on theirs, both outcomes counted. But people didn't like that, so they narrowed the window that this can happen. You have client side hit detection, but the server acts like a referee that decides who shot faster on their own end. What fucks things up even worse though is when there is a large ping difference. aka the "console / dialup modem appeasement code." The referee giving the other guy a 200-300ms handicap is absurd. It leads to situations where it looks like you pumped enough bullets into someone to kill them three times over, yet you fall over dead the moment they fire back and they jog off at full health. If that bullshit was capped at 100ms, then you'd see a LOT less bullfuckery.
If you join a server in Taiwan or Uganda or someshit the game feels exactly the same as having a 20ms ping. Which is bullshit. There does not need to be that much compensation for ridiculous amounts of latency.
In the end, the server is probably right. That person probably reacted and fired quicker than you did. But it's hard to fucking swallow when it looks nothing like that to you. Knowing how it all works I STILL get pissed when it happens, even though I know that I should just trust the goddamn game.