It also comes down to what role you want XP to play in your game. If the goal to have XP simulate the skills the character picks up and improves through RP, or is the goal of XP to provide the player the ability to have their characters abilities increase and provide the player with goals to engage with, both are valid ideas of game design but are at odd with each other. Those are two ways of seeing XP I thought of off the top of my head but I am sure there are many others as well.
Personally I see XP as an out of character construct, mainly because I find most learning and teaching scene to be dull as dishwater so learning my characters do is always off camera unless game policy mandates a log in which case i put up with two hours or so of bland RP.
On the topic of other ways of advancement Star Crusade had an interesting in theory method, at the end of each week you would write up essentially small xp justifications, (can't remember what term they used) and then you would get to credit towards raising those skills. You were limited to a set number per week but the justification could be both from on screen and off screen activities. I think the off screen part is essential.