It's something I've considered with my current project, but one of the reasons I've not immediately rushed into it, is because Master/Padawan relationships can be a bit troublesome to deal with, though its not a coding issue.
Let me explain: The problem arises when either the Padawan or the Master becomes unavailable to play for times in line for the other to benefit. If the Master can't be on at the same time as a Padawan unexpectedly, or vice versa, then the other is essentially robbed of further development.
Naturally the solution to this is to just have it possible to easily destroy that link, and find another counterpart in another player. But if you do that, then you effectively remove the entire point of the relationship as Padawans could disconnect from their Master to learn from other Masters, and of course, vice versa.
So, naturally, one would conclude there needs to be a timer, or a penalty of XP of some sort or something in relation, in order to break that link in the first place. This works, however you have to take into account that it is then possible to 'troll' others by accepting a Padawan and then immediately vanishing from the game or refusing to train them, thus leaving them completely in the dry and forced to punish themselves. You could punish the Master for this too, but then Padawans could abuse that as well.
I'm not neccesarily saying this is a bad idea, but there's a lot of problems to consider and potentially solve if implemented.
How to implement it is relatively easily, though. You simply need to make a variable on the PlayerObject.idl and designate some way to store the player. The first name is usually great for this, as it is unique. Then, you just hijack the code for training and check for Jedi Skill. If Jedi Skill is being taught, check if the one offering training is the designated Master, and then allow it if it is. You'd need to create a new command for this, but that's relatively generic and simple.