I’m not really an expert on the programming side, but I think sometimes a look into the code reveals some of the basic concepts used in the application design. (On the other side, I find your insights into design principles really enlightening.)

I think the sound indicator doesn’t use the AppIndicator API, which is rather an abstraction layer for easier integration into applications. But e.g. the rhythmbox indicator does use set_icon() a lot, while the original idea seems to be to just use set_icon() and set_attention_icon() once and then use set_status() to show one of them. So it is of course possible to use as many icons as you want (and rhythmbox needs it to show playing state etc.), but the API clearly defines only one single attention status.