Getting hit behind cover will ALWAYS occur for as long as client side hit detection is a thing. Understand the only reason there is client side hit detection is because of $$. Server side hit detection is obviously much better as it doesnt require any additional interpolating. But the reason games no longer use it is because it gives players with lower pings the advantage. Thus they want to be able to provide a game that everyone can play (aka, they want to maximize their profits) so they now use client side hit detection, or in the case of bf4, client and server side where the client is detecting the hit, but sending that to the server to confirm it is what the server saw as well. Its the best they can do until everyone in the world has sub 10ms pings.