One of the players in my campaign, who usually chooses to play bards, finds the idea of asymmetry between PCs and NPCs unreasonable. He argues that if he can do it to NPCs, they should be able to do it to him.
This, I think, is the fundamental error. Or "difference", if we want to avoid any claim to RAW/RAI support.
There is no "do it" here, or at least no "do it to" with an implied victim. The Bard doesn't "do something to" the NPC they persuade. "Persuade" is not a mechanical action, "Intimidate" is not a mechanical action, and "Deceive" is not a mechanical action.
The play loop rules are there to help DMs adjudicate roleplaying in the absence of specific rules. The player proposes a course of action...a goal and an approach...for which there isn't a specific mechanic. The DM tries to determine if they will succeed, and if they aren't sure (which can also mean if they just aren't sure they can adjudicate impartially), they can assign a DC and call for a roll.
So in the case of a Bard persuading a King, the DM's job is to, as fairly as possible, assess the likelihood of success. And that involves knowing their NPCs, what their motivations and personality and foibles are like, to determine that possibility. In other words, the DM is
roleplaying the NPC. It is roleplaying when they say, "No, sorry, there's no way you're going to persuade him of that." It is roleplaying when they say, "Yes! The King jumps to his feet and agrees!" And it is
still roleplaying when they say, "Hmm...that's tricky. Let me see a Charisma roll; you can use either Deception or Persuasion, depending on how you want to play it. 18 or higher and he'll agree."
Again, the Bard didn't
do anything to the NPC. The Bard just did something, with the objective of getting the NPC to do something, and the DM determined how the NPC responded to that something. Roleplaying, not mechanics.
(EDIT: and I want to point out that in stating goal and approach, the goal...such as 'convince the king to let me marry his heir'...can be mistaken as being the "it" in "do
it to the NPC". But the purpose of including the goal is just to avoid misunderstandings and ensure that the DM understands what it is you're trying to accomplish. There's no binding mechanical effect that springs into being with the declaration of the goal. This, by the way, is also
@HammerMan's mistake in his example of "I climb the tree to find the cow.")
So to reverse that process, and having the NPC try to persuade the PC, without making it
completely symmetric by swapping roles in the play loop, is an affront to the basic rules of roleplaying. Now it's the merchant trying to persuade the PC, so it's the player who should be determining how likely it is for their character to be persuaded (and, yes, asking for a roll if that information would help them decide.)
But it's a fundamental breakdown in roleplaying for the DM to say, "The merchant is going to try to persuade you to pay 100g. And based on your character's personality, background, weaknesses, and what I think their emotional state is after that last fight, I'm going to set the DC at 18." That's the DM roleplaying the character. The
player's character. And it will never happen at my table, nor will I long play at a table where it does happen.