For the sake of a certain type of balance, I'm counting individual specs of pure DPS classes separately, and Feral Druid tank/DPS count as two.
LCD counts the total number of specs subgroups, to account for gear with "universal" stats which can be used by either sub-group. ie: for Int classes, gear with only crit, haste or mastery; for Str classes, gear with only hit, expertise or mastery.
Primary eight armour-class slots:
Cloth Int+Hit = 7  \LCD 9 
Cloth Int+Spirit = 3  /
Leather Agi = 5 
Leather Int = 2 
Mail Agi = 4 
Mail Int = 2 
Plate Str+DPS = 5  \LCD 8 
Plate Str+Avoid = 3  /
Plate Int = 1 
Misc slots, neck, cloak, rings, trinkets*:
Misc Int+Hit = 9  \LCD 14 
Misc Int+Spirit = 7  /
Misc Agi = 9 
Misc Str+DPS = 5  \LCD 8 
Misc Str+Avoid = 3  /
*trinkets tend to subdivide again due to either having no specific primary stat [or similar stat such as attack or spell power] or specifically benefiting and/or proccing from melee/damage/healing abilities.
Weapons and relics completely redraw the lines and divide classes so many times to the extent that some categories ended up being grossly underrepresented [-cough- Warrior ranged slot] in current content.
Let me have a go and see where I get. I might actually skip the division for spirit/hit and avoidance/DPS this instance to avoid the list becoming too [moreso] long and convoluted. I should be noted that this extra subdivision exists for every type of Intellect weapon, and every type of Str weapon except for shield.
I'm also going to skip "non-optimal" weapon setups such as caster Shaman using staves, Rogues using ranged and Hunters using every weapon in the game.
Int Staff =11  Mage, Warlock, Priest, Druid
Int Dagger =13  Mage, Warlock, Priest, Druid, Shaman
Int Mace = 6  Priest, Druid, Shaman, Paladin
Int Sword = 6  Mage, Warlock, Paladin
Int Offhand =11  Mage, Warlock, Priest, Druid
Int Shield = 3  Shaman, Paladin
Int Wand = 9  Mage, Warlock, Priest
Int Relic = 5  Druid, Shaman, Paladin
Agi Staff/Polearm = 5  Hunter, Druid
Agi Axe/Mace/Fist = 4  Rogue, Shaman
Agi Dagger/Sword = 3  Rogue
Agi Ranged = 3  Hunter
Agi Thrown = 3  Rogue
Agi Relic = 3  Druid, Shaman
Str 2H = 5  Warrior, Death Knight, Paladin
Str 1H = 5  Warrior, Death Knight, Paladin
Str Shield = 2  Warrior, Paladin
Str Ranged/Thrown = 3  Warrior
Str Relic = 5  Death Knight, Paladin
So looking back, I tend to think the data kind of speaks for itself.
But, what more ridiculous conclusions can we draw from the above? Firstly, there is too much Agi gear in the game. It's mostly the nub classes the use it anyway, pretty much all raiding Hunters and Rogues [and most other pure DPS classes] have long since switched to the vastly more useful hybrid plate classes.
Concordantly, there are too few plate drops. Everyone is a plate class now, so there need to be more plate drops to gear them all.
Anything that's not a plate drop needs to be intellect gear. All healers use intellect gear, so right there that's 30% of your raid at bare minimum that needs this stuff. The only pure dps classes left these days are Warlocks and Demonology Warlocks [and the occasional Mage who for some reason never let go of his main since vanilla -- it's a statistical truth that nobody has rolled a mage since BC was released] so by my calculations that's about 60% of your raid that needs intellect gear, and they can't get it by DEing that horrible rogue trinket that drops three times a week.
Also, why are there no Enhancement Shaman any more? Back in Icecrown I raided as Enhancement and got the best gear in the game without trying because I had no competition whatsoever [going back to what I've been saying all along] and was regularly ranked as World #1 on WoL whenever the other Enhancement shaman didn't raid that week, not to mention the fact that it's the only melee DPS class in the game that's actually interesting to play. Also, it got buffed up the wazoo in early Cata, and I thought everyone loved playing overpowered classes.
In conclusion, either everyone needs to roll Enhancement Shaman, or alternatively we can just turn all the Agi classes into Str Plate classes for the next expansion and solve the problem that way.