First, compositional gameplay is something that I have a rather rabid obsession with, so I can't help but approve of the initial example. There are a number of pitfalls, however, which I shan't go into but which JBadams' list goes a good distance toward preventing.
Secondly, I suppose (because I'm not certain if the idea is any good) I'll share my "pet" profession for a project I'm working on. It's a space-based RPG so I apologize if you wanted medieval only ideas. Anyway, the basis is [surprise!] building robots and is, unsurprisingly, called Robotics. I initally drew up plans for a complex scheme involving custom robots, user-created paths, and an obscenely unfortunate UI for directing robot behavior and then realized that only people with Ph.D.s in inanity could possibly find that interesting, so I scaled it back a bit and looked at what I really wanted. To use JBadam's list, I ended up with:
- A profession must be useful.
- Robots are useful as they are essentially free party members that can perform specific, albeit limited, functions. The key point of robots that I really wanted to emphasize is that they are expendable, thus the need to keep producing them. Being able to produce robots "in the wild" - as well as salvage various new parts for them - is a potentially excellent skill to have in a dubious situation.
- In accordance with this, most robots take the form of "glass cannons" - they don't have a lot of hp. This prevents them from becoming a nuisance and removes the temptation to let robots play the game for the player.
- It bears worth noting that my game is based around functionality differences. Thus, there's no direct "upgrades" for various attachments: it is concievable that a robot with a shotgun is more useful than one with a machine gun in certain circumstances.
[*]A profession should present players with some form of meaningful
choice.
- A core part of the "Robotics" profession is outfitting various robots with different tools. The term "robot" is a bit misleading: as described below, only vehicular machines are capable of movement, all the others are required to be mounted on a vehicle in order to change position. To expand upon that slightly, robots that aren't attached have two basic functions:
- Vehicular robots without a top attachment are allowed to carry a single item from the player's inventory to some destination or perform vehicle-specific actions (like bulldozing, etc.).
- All other robots are allowed to be set up as stationary platforms, either on the ground or on a wall.
[/list]
Some carry weapons and are merciless fighters, some understand only the concept of plowing through walls, while others use sensors to find hidden enemies. Ideally, robots would be able to use most of the items that players can obtain, in addition to having access to various unique forms of sensing and movement.
- An interesting profession should ideally offer different gameplay.
- This one is a little hazy, if only because I don't believe that the player should be able to directly control the robots. The basic premise is that they are largely "fire and forget". You can give them rudimentary (emphasis mine) commands: patrol here, open fire, stay put, etc. and for the most part the idea is that they play a purely supportive role - they're not going to win many battles for you single-handedly (their power curve is intentionally limited) but they are, essentially, extra, expendable party members that can perform odd jobs you cannot or merely the ones don't want to do.
- The point of the profession, honestly, is less about how you build robots and more about how you use them. If you're building a computer for gaming as opposed to, say, desktop-only work, you simply purchase more expensive/slightly different hardware; the basic process of construction, however, is the same. Thus, the "robots" created by the profession are utility robots - you don't get to make CP3O, that sounds rather involved. For now, anyway.
[/list]I completely twisted the idea of parallel computing in my quest for ease of use and created a simple concept based on the idea of multiple robots working in tandem. You essentially have a "robot core" which is, more or less, a processor that can recieve certain instructions (all of which are premade and presented via UI). As stated previously, the actual instructions you can give a given "robot" is dictated by the attachment you place upon it. So, a "robot core" that is given a missle launcher is able to understand all basic "weapon" commands in addition to, as an example, the command to "mercilessly carpet bomb" something.
As also stated previously, for a "fully functional" (movement + some activity) you need at least two robot cores: one to control movement and the other to do whatever you want. At the moment, my idea is that the maximum number of "cores" you can have is limited to 2-3 or so - after all, I want robots to be expendable and making "super robots" doesn't make a lot of sense with this goal in mind.
Standard Kyan-quality diagram to further muddle the issue:

For skill usage, it seemed to make little sense to impose arbitrary restrictions based on skill level. I felt a more practical metric was
price - after all, newbies to a given hobby are never allowed near expensive equipment for fear they'll accidentally damage it. Thus, a given skill level allows you to use and apply attachments that fall below a specific price range. This naturally deliniates basic parts from specific, rare attachments since rare quality implies special attention and custom work is always more expensive.
Lastly, continuing with the idea of "choice" and "composition", any robot that hasn't been blown to pieces can be retrieved and all retrieved robots - or robots that currently reside in the player's inventory - can be decomposed into their subsequent "robot" parts. This lets you replace ineffective robots on the fly, provided you can do so in a safe manner. It's important to note, however, that you can't decompose them further into their basic parts - e.g. the robot core and whatever item you used to determine functionality.
I apologize for the length of this, I got a bit carried away.
Keeping in mind the general guidelines as posted by JBadams I am still very much interested in other profession possibilites or even working "classic/traditional" professions in such a way as to bring them inline with the theme of this thread.
*rubs eyes tiredly* Oi, I totally missed that edit and mildly misread the title when I started writing this, my apologies. *ponder* For an MMO, introducing limits per-person (to prevent turtling and/or abuse and reinforce expendability) and increasing variation (e.g. dividing generalized functions into specifics, such as "radar" into "track hostiles" or something) would work fine. Expanding the command system to include "meta" commands (e.g. certain combinations open up additional command options) for player's to find would introduce further activities for robots to execute. I suppose that takes things a little too far, as it essentially turns it into a mechanical variation of "monster breeding", but it's still a thought.
The ability to "decompose" robots can make for some interesting trading scenarios.
Furthermore, adding controllability to certain robots would probably be fun. I'm reminded of the aerial battles I had in WoW courtesy of Christmas presents and the races using the-racer-control-thing-whose-name-currently-escapes-me. Anyway, the point is that controlling robots can add a lot of fun, albeit generally not a lot of pure gameplay.
The original design was for a single player game but compositional professions are easy to expand; in this case, simply adding additional parts for the robots to the game would suffice. On the whole, compositional systems tend to be quite similar. The key concept is to ensure that the components that are added have a viable reason to be in the game. Part of the reason I was/am so obsessed with keeping the price down is to reduce the opportunity cost of less-than-optimal combinations. Furthermore, it's important to introduce actions that are robot-only.
Anyway, I figured I'd just throw that out there.