Fantastic Idea
I stopped short of where I wanted to go with this idea. Technically you could build the logic into the system to say that any class that can serve more than 1 primary defaults to a specific primary role based on allotment of points in their talent trees. And understand that I am saying "defaults" not locks them into that role. Any Druid that had more points in Feral vs Balance or Restoration would be a Feral Druid obviously. If you allow the Role system to take on a definition of Spec such as this you could have the system limit the person based on the available spec in the system. Everyone should have a base talent point listing if you employ the use of GuildBank or the Armory.
Example. On my site I setup Melee DPS, Range DPS, Tank, and Healer.
for Melee DPS I said you could be a Shaman, Rogue, Warrior, or Druid. For this to work you could set the definition for spec up as follows. Basically provide a check box for each major talent tree and allow the operator setting up the roles to check the talents that make that person fit that role.
Melee DPS
Rogue Assasination / Combat / Subtlety / Any (since a rogue no matter what only has this Primary Role I would check Any)
Shaman = Elemental / Enhancement / Restoration / Any (since the focus of an enhancement Shaman is Melee damage and totems that enhance melee DPS roles I would check Enhancement)
Warrior = Arms / Fury / Protection / Any (an Arms or Fury warrior would be considered a DPS class over a tank so I would check both Arms and Fury)
Druid = Restoration / Feral / Balance / Any (Only a feral druid would really be in Melee for DPS so in this instance I would select Feral)
The point of this is to take some of the guess work out of someone selecting their primary Role. The idea being that you not only indicate what class can fill what role but what spec in that class is required. It would help prevent a protection paladin from trying to sign up as a healer when they have 41 points in Prot, 10 points in Holy, and 10 points in Retribution. At the same time it would allow for the Feral druid to sign up as a Melee DPS or Tank under my system while ensuring that a Balance Druid is signing up as Range DPS and a Restoration Druid is signing up as a Healer.
The dropdown boxes on a character profile should still be selectable because a player profile might not be updated or a Feral Druid may want to be considered DPS before being considered as a Tank. But if a Paladin using Guild Bank respeced from Protection to Holy it would provide a mechanism that could automatically update his profile from Tank to Healer and thus also hopefully update his role in any future sign ups from Tank to Healer.
Puts on flame retardant suit and ducks