There is a difference here that I highlighted - the player investment in an ability. If you have a warlock that selected the ability to speak with the dead as an invocation, not letting the ability be effective is invalidating that selection. Imagine if your PC took the Crusher feat after you find a +3 Maul ... and the DM then goes on to put only Mighty Servants of Leuk-o (the infamous creature immune to bludgeoning damage) in every combat.
In my experience, when a PC invests in an ability, they want that ability to shine. This is true of feats, subclasses, magic items (whether found or purchased) ... and even spell selection: even for clerics that can change spells easily. If the DM negates that choice to control how the story unfolds, players feel it ... and it is not pleasant. Also, it tends to make the game seem to unfold only as the DM wants it to unfold ... not how the players figure it out.
As I said, the occasional naturally unfolding situation where it absolutely seems like the deceased would not know who their killer was for obvious reasons is fine. However, if the excuse is just that you, as a DM, decided the NPC victim was facing away from the killer - when the killer had no reason to hide their intent as they were isolated and the killer was more powerful and faster ... well, that just seems like DM fiat.
This can be a huge problem. A decade ago I played with a DM that wanted to run the Dark Sun series of modules. Those modules have a huge railroad problem. They do things like dictate what the players response should be when threatened with no room for other responses - if they fight back everyone will be killed and if they try to flee they have to be stopped because the module needs the PCs to do what the threatening NPC wants. It assumes the PCs do it to instead of just fleeing away ... Anyways, I was playing in that game using modern character creation rules that the module did not anticipate and my character had a teleportation ability at low level. This would allow me to do something the module didn't anticipate I could. When I said I was going to teleport and XXXXX to solve the problem the DM stopped the game for about 10 minutes to try to figure out what to do. In the end, he said, "it doesn't work." I asked why and he said, "You don't know." I spent a few moments prodding him before I came to the conclusion that the module was not going to work if I could teleport, and he had no idea why it wouldn't given everything that had taken place.
No moment in 40+ years of D&D has taken me out of the game more than that moment. The story game way to the railroad. I stopped being a player in the game and became an observer where my success and failures were dictated to me, rather than being due to my contribution. We played that game for another year, but it was hard to care when I knew that we were just along for the ride, and the dictated story was only so-so.
That was an extreme case of the phenomena, but players feel that cut every time you say, "No" rather than "Yes, and ..." You get much better results when you let their abilities work as they are designed to do without putting up barriers that are not truly necessary.