I think we may be piling several different things into this discussion. Lets separate it into bot-bot interaction and bot-human interaction.
Regarding bot-bot interaction, I think that allowing bots to set or otherwise modify their own color or (some secondary color ring) and view the colors of other bots would only be interesting if it had implications and/or interactions with the environment beyond the current in/out pairs such as impacting visibility against a background (e.g. red bots would be harder to see against a background of a red shape). This kind of thing implies that the color of shapes (or portions of the field) would also be visible by bots (as well as other bots) and that the simulator would adjust eye values based on bot color simulatarity to background color. The latter is quite complex to impliment (is a small bot visible against the background of a larger bot of the same or simular color? How close is close? How simular is simular?).
If our goal is to introduce specific features such as camoflage, then I would rather us look at each feature we want specifically and impliment them or not based on merit without tying outselves to color as the mechanism. W.r.t. camoflage specifically, I've made a proposal based on a manufactured substace which abstracts away the entire concept of background. This would would be both easier and more effecient to impliment.
Regarding bot-human interaction, I'm all ears w.r.t. suggestions for allowing us humans to better see what bots are doing but I would divorce such suggestions from a bot's notion of color or interaction with other bots. Instead, what I might suggest here is a some better means for humans to view specific memory values of multiple bots at once. For example, I could "flash" every bot on the field (make it's circle go solid) each cycle a human-specified memory location hit a specific value. For example, if you wanted to see all the bots attempting to .repro that cycle, you could could specify this and those bots would go solid that cycle. This could be as simple as making a bot flash be the action of a script. The converse of this is a dialog to change a specific memory value of all bots or all bots of a species to a specific value (say you wanted to change the state of your shepards) which is already on my to-do list.