There are currently three different sets of emoticons that can be chosen in preferences (in my company’s system). The problem is that if two people chatting are using different sets, many of the emoticons don’t show up graphically, only textually. This shows that text is the only thing passed back and forth, and EIM interprets it according to the receiver’s emoticon settings. It would seem to me that instead of sending 2 to 9 ASCII characters (":)" to “:hellboy:”) which are 7 bits each, it may be simpler (and even bandwidth efficient) in most cases to just send the emoticon picture. This would also allow both people to use different emoticon sets, and use them freely.
The other solution, which would certainly increase bandwidth–though more predictably–would be to send an extra couple of bits (or bytes) that represent the emoticon list that the sender is using for the receiver to interpret correctly. This would require everybody to have the same set of emoticons and would not allow you to find your own emoticon set (which I’m not even sure is available currently). I’m sure other people have encountered this [small] problem, but I’m not sure if it’s really worth fixing. But then, why have emoticons anyway if they can’t really convey your emotion.