I know what empties are for, but I'd like to change the colors of empties as a visual aid (for example, red for camera controls, green for object controls etc.) while animating. Is this possible?
They can be changed from User Preferences > Themes.
As you commented, per object viewport color is unsupported officially. Such idea has been discussed before, and decision is to allow per type color via Themes setting (see above), instead. So the answer is no (or not yet).
However, you may consider to use another trick in case you have to:
- Create a simple mesh object, assign material with specific Diffuse color (Viewport Color for Cycles);
- Parent it to the empty (or other objects);
- Toggle off the renderability (or CtrlH), and also selectbility in Outliner if necessary.
Then, objects like empties and cameras can be indentified as you expect (except in Wireframe or Bounding Box view though). It might be the only solution so far, if you really have to.
A specific feature to set per-object vewport color is available in Gooseberry branch build, I believe it will be soon merged into master trunk.