I know a lot of players hate the xp-for-killing method of advancement. Some say it feels contrived; others that it promotes combat over role-playing. People have sounded off looking for other ways to grant xp for years. Some have looked at rewarding successful completion of a goal, the end-of-quest reward. However, I say that killing is xp, accomplishing a goal is not.
A person does not get better at “saving the princess”; there is no “Save-the-Princess” skill that you can use or raise when you level up. “Saving the princess” is a by-product of killing the evil people who kidnapped her and are keeping her away from you. Likewise there are a multitude of things characters do on their way to “saving the princess”. Giving xp for accomplishing goals is an abstract where you are rewarding a character for the overall effort not for the end. When saving the princess you are in fact rewarding the characters for...
-Being insightful enough to realize there had to be an inside man helping the kidnappers and using that idea to track the butler down.
-For getting the butler to talk and reveal the name of the person who paid him off.
-For beating the person who paid off the butler into revealing the name of the mercenary group that committed the kidnapping and then getting him to reveal their location.
-For scouting the ruin wherein the mercenaries are hide out.
-For doing some research to reveal some history about the ruins that reveals that it is was once a temple to an earth god.
-For being insightful enough to bring a crowbar as equipment since it will be needed later to open the barred door.
-For sneaking past the guardian basilisk at the door safely.
-For killing the final guard.
It is not the goal that teaches a character something, it is the things the character does on the way to reaching their goal. In fact, I would even take it a step further and say that all those other things (disarming traps, picking locks, diplomacy, etc) are really nothing but a means to the real end, killing something. All other actions lead up to the killing.
Part of the xp-for-killing mentality is baked into the majority of rule sets. As your character gets better (levels) what do you get better at? You get better at killing things; virtually all your new powers are about new ways to kill things. You may get a slight increase in your skills (the non-killing part of the game) but these are not new powers. Thus it makes sense that if the focus is about getting better at killing stuff then you are learning from killing things, i.e. xp for killing stuff. A cook gets better at cooking by cooking. A killer gets better at killing by killing. The reverse of this is that talking your way past a guard does not give you an extra +1 to hit or +1 to damage or a new encounter power that does a knockback when you next level up.
Also, bear in mind that xp is not really the reward for killing stuff or for accomplishing goals. XP is really only a placeholder for the actual reward, which is leveling up. By taking a look at what a character gains as part of the leveling process, we can see what the actual reward is. In just about every RPG on the market it is the ability to better kill stuff. So, it makes perfect sense that a character learns the most from killing stuff.
Some may argue that RPG games are not all about killing, or at the very least should not be. However, the simple fact is that, in the end, it all comes down to the fight at the end of the adventure. People can make a good argument about how adventures are written by the DM, so the amount of combat is dependant on them. Some can argue there are systems out there that do not include combat. However, for the point of this article, I am talking about the majority of RPG systems out there and the overwhelming majority focus on combat and if that is the case then xp for killing is an acceptable and symmetric reward system.