Funny enough, on a technical side, libappindicator specifies exactly three statuses: Passive (means hidden), active (means visible in normal state) and attention (means visible requesting the users attention), see

And it is technically possible to specify icons for the two visible states, active and attention. So on the API side, your idea of just having one attention color in addition to the monochrome normal state is implemented. And in order to use more colors, one has to work around the API and set different icons for active/attention status.