From what you are saying, we can use traffic lights with the same color and make difference only by shape.
That’s exactly what I’m trying to say. Ingenuity of traffic lights design lies in the fact, that You can use them with full colourblindness. Red light is always on top, green at the bottom and yellow in the middle. Red and green never lights at the same time. Yellow always lights with only one of remaining lamps at a time, and is turned off immediately with the one it was accompanying; then the one that was dimmed turns on, so one can judge at a glance which light will be next (red or green / upper or lower). Blinking single yellow lamp (the middle one) means, that traffic lights are inactive and one should be careful and focus on traffic signs or use general traffic rules.
Our eyes can see colours only in tiny part of their view fleld, the rest of the field is monochrome. Impression of colourful environment comes from eyeballs movements and brain rendering. Try to look at traffic lights the way all lamps are in Your periferial part of field view. Keep Your eyes still and wait for light change. Will You really see the colour of lamp turning on, or You’ll just know what it should be? Brain cheats You all the time.
Red / yellow colours of traffic lights really helps to see lights from distance and to make decisions at reflex level, but that doesn’t apply to icons, to be honest.
What I definitely didn’t say is: colours are unnecessary. It’s just another layer of information, that can help in some parts of GUI and is superfluous in others. Lists of different items, such as Outliner or File Browser, are different worlds from bunches of few local icons. Colours can help there a lot, but I still believe that good design can work without much use of colours.