The thing is, people want to win at games.
That's why morality systems, in the end, never worked - because there's no reason not to max out your Good or Evil meter. In the end, BioWare just scrapped that altogether for ME3 because they couldn't figure out a way to make it both a story mechanic and a game mechanic.
Spec Ops is supposed to be this antiwar morality tale, but if you run up and execute downed enemies - even before Walker goes insane - you get extra ammo that pops out of the dead bodies. If you are low on ammo, you're going to do that because you want to have more ammo for the next stage. It's the same with the arrow thing that Patrick was talking about, I presume.
If you reward certain behaviours, the player will chase those behaviours unless they're not interested in doing well at the game. It's up to the designer to limit those rewards to not incentivize gameplay that clashes with whatever story they are telling.
Or if the story doesn't matter, then don't pretend it matters and stop trying to make these characters seem like human beings... because honestly, they're not.
I will say, Metal Gear Rising chastises you for killing the soldiers and makes you question if you (as Raiden) are as evil as the people that you are hunting down and murdering. Of course, that conflict manifests itself in a gameplay mechanic that sort of doesn't matter in the long run, but at least it attempts to try to bring the two components (story and gameplay) together.