Actually NPCs most likely won`t have a 'colour' and just use default unit texture without a colour mask on-top. So yeah - 3 primary colours.
I`m interested to hear which colours would you assign though - for yourself/allies/enemies.
So far i`m thinking, Blue/green/red
I think that's a perfectly acceptable way to handle NPC's. However, I disagree with the way you're talking about handling colours.
One of the main issues is that in multiplayer games, players often refer to each other by their colour rather than their names. It's much easier (both for me typing and my allies cross-referencing who I'm referring to) to say "attack red" than it is to say "attack orcslayer77". For this to work, however, colours must be significantly different even amongst the same team, and also must be consistent between games. That is, if I see a player as red, everyone else should see the same player as red.
Complicating matters is the concept of a free for all situation, where there are multiple teams of enemies. Having them all be shades of red is not only confusing, but does not do justice to the fact that these groups are not allied. This is important information to know at a glance, as the strategic ramifications of an enemy receiving reinforcements or a third group of unaligned enemies arriving are completely different.
Finally, beware red/green/brown if you're going to be using shades. I know it's easy to overlook, but it's a real gamebreaker for red green colour-blind people like me.