So you're saying that your players never play beyond their characters' knowledge, when the player knows more?
I think we should fork if we really want to have this discussion, but.
When does a player have perfect knowledge of their character's knowledge anyway?
But if no, then how can they claim to be playing true to their characters?
How can anyone ever claim to be playing true to their characters? The character is in the fictional space at least as complex, nuanced, and knowledgeable as the player - usually much more so. It's mathematically provable that a system cannot contain within it a full simulation of itself. Thus, there is no such thing as playing perfectly true to ones character anyway.
Further, how does an outside observer know when a player is playing perfectly true to their character anyway?
As in, seeing the fiction through their characters' eyes and (as far as possible) using only the knowledge those characters would have; in full awareness that sometimes that knowledge might be based on information that is either outright faulty at source or has been misinterpreted by the PCs/players.
As a GM, I cannot improve the game by trying to referee how the players act on information that they have. In the classic example of a troll's vulnerability to fire, a player that recognizes that the thing is probably a troll, and who knows that trolls are vulnerable to fire does not have perfect knowledge of how his character would behave absent his knowledge as a player. He not only does not know whether his character knows that trolls are vulnerable to fire, but he can never know whether even if his character didn't know that trolls were vulnerable to fire that he might choose anyway to try attacking the creature with fire. Once a player's decision making process is polluted by the metagame knowledge, it can never be unpolluted. The player will, whether he chooses to attack with fire or not, still be metagaming because if he chooses to attack with fire he is acting on that metagame information, and if he doesn't choose to attack with fire he is still acting on that metagame information. I don't try to force players to simulate how long their characters remain clueless before trying fire.
And if they're intentionally not bothering to play true to their characters, what's the point of having characters?
And if players aren't making the decisions, what's the point of having players?
The real solution to this is as a DM to try to limit how much metagame knowledge leaks to the players. Once it has leaked, it's not the players fault for acting on it. The blame lay with the DM for leaking the information in the first place. Blaming the player for acting on the information is something like giving the players the answer to a riddle, asking them a riddle, and then asking them to decide whether they would have been able to answer the riddle without first knowing the answer. It's a total jerk move by the DM, that does not improve the game.