I used to take issue with "double dipping" but eventually decided it isn't an issue.
Let's take a purely combat scenario where there are guards on a drawbridge and archers on top of the wall. The PCs kill the guards while taking heavy fire from the archers, and get inside the castle. The archers fall back to the throne room (as they've been instructed to do). When the players get to the throne room, they face off against the BBEG and those archers, and ultimately defeat them.
I see no reason why, in the above scenario, the PCs shouldn't get XP for the archers twice. They fought the archers twice, taking a risk twice. If they killed the archers above the gate and then a second group of archers in the throne room, I would award XP for both groups. I don't see much of a difference between fighting the same group a second time or an identical group for the first time.
Don't get me wrong. If it's a continuous fight with the archers into the throne room, I'd only award XP once. Awarding XP a second time is predicated on the archers having time to recover. If the archers are all at 1 hp from having taken a fireball, they're effectively in the original encounter as far as I'm concerned.
From there, it isn't a huge leap that if they talk their way past the archers, and then have to fight them later, that they should get XP for both. I would grant XP for fighting or talking, and I would grant XP for fighting them twice, so why not for fighting and talking?
Maybe if my players were trying to game the system it would be a bigger deal, but they don't. I have sizable achievement XP rewards in my games, so "double dipping" on minor encounters is somewhat self defeating in the first place. You'll advance much more quickly in my game if you overcome goals and then continue on to new goals than if you double back to double-dip by killing everyone you talked your way past.
YMMV