Blanket party.
For those not familiar with the term, it's a military form of discipline, where the members of a unit...encourage...a substandard member to improve his efforts, especially if there are detrimental effects from his shoddy performance to the group as a whole. E.g. "Recruit Anderson couldn't seem to fold his clothes properly, so he gets to run the obstacle course again. The rest of you go along to make sure he finishes."
Now, lore would have you believe that the term comes from throwing a blanket over the offending individual while he is in bed, with several people holding him down in place by pulling the blanket taut over his supine form while others do the active encouraging using bars of soap in socks. I've never seen or legitimately heard of it going that far, mind you. Usually, talking to the individual is enough, if he has any semblance of a conscience. Most people don't want to be the weakest link.
So, to the point, I think handing out goal XP evenly is fairest - it tends to keep players focused on the larger picture, and moves away from the "who killed the mostest bestest" mindset that so many of us grew up with. If the party succeeds, everyone wins. If I were GM, I would find other in-game rewards for those who contributed more, but keep the party advancing at the same rate with XP.
But, you players have every right to speak to the other players who do the Brave Sir Robin maneuver. "I don't care if that's what your thief would do, I'm asking you to support the team. Do you want my barbarian to have this discussion in-game with your weasel? Because that's what HE would do."