No reward for combat -> combat becomes an annoyance and an unwanted puzzle that pops up over and over -> game is shit.
No reward for pointless combat != no reward for any combat -> mondblut's argumentation is shit.
The most fitting exp. system logically depends on the type of game,
the exp per enemy system is in my humble opinion best suited for combat-heavy games whereas very dialog, non-combat-skill or puzzle heavy game would benefit more from a reward by objective type.
I think proper RPG should allow for variety of approaches, combat heavy games are generally either H&Ses or dungeon crawlers (if TB).
Also, I think that the main thing the exp. system depends on is desired detail versus simplicity and efficiency. If you want detailed and independent on high-level structures like quests, you try to make good use-based, otherwise, if you want simple, reliable and don't really care about detail or if it works outside of the bounds created by quests and such, you should go for goal-based XP.
XP should be granted for overcoming challenges. If each encounter is a challenge (and not a filler), then you should be rewarded for beating the odds.
Is employing a clever distraction and sneaking away any less of "beating the odds" for a thief than rushing in sword in hand is for a warrior?
Besides, a system should also be judged by the behaviour it produces - if in-universe a non-paladin, non-crusader and non-zealot in general character would only get in fight with bandits or goblins when they are objective of a task he's undertaking or if they attack, while in-game he benefits from running around actively seeking enemies to slaughter for teh exps, then the system is deeply flawed.
I was running around seeking bears to slaughter in BG just because they would give me hefty (for a low level party) XPs in BG, and it sure as fuck it wasn't a natural behaviour, especially with druid in the party.
Second, we're talking about fixing combat design flaws, so comparing a proposed solution to other design flaws is meaningless. If a game is designed properly, all ways of dealing with an obstacle (sneaking, talking, etc) should be rewarded.
If the game is complex enough and individual ways are not just simple skill checks, but may involve complex activities involving generic mechanics, rather than unique scripts, not all ways may even be realistically accountable for individually. There is also the problem that accounting for all the ways allows player beating the odds several times over using different ways to accumulate several times more XP than designed, unless specifically prevented by scripts.
Checking for goal condition assumes that the player has beat the odds somehow because otherwise they wouldn't have triggered the goal condition.
Simple, fool-proof, effective, efficient.
If those rather than deep and exact simulation are your goal (and if not, why are you even using fucking XP system rather than designing non-exploitable use-based, reflecting particular skill growth and providing legitimate and logical disincentives for JoATing?), then goal-based and goal-based alone XP is superior to everything else.
Again, you keep thinking in terms of the current, retarded RPG design. In a well designed game you shouldn't be a master of all trades. If you're good enough to sneak past a group of enemies who actually do pay attention and aren't wearing buckets on their heads, returning to kill them should get you raped. Hard.
Even in a well designed game you're likely to be the master of few, especially if the game is not party based. Which means that if you allocate your skills to get the most out of redundant quest solutions, you won't get raped hard, but will get at least twice as much XP and possibly make yourself even harder to rape.
Congratulations! Your game is now broken!