Windows has several theming options. Changing shell icons through the registry, setting wallpaper, UI colors and sizing metrics, and (since XP) UI skinning. ReactOS can simply adopt these options directly, however there is one thing Windows does not do. And that is complete icon substitution, for all internal applications and libraries. The only option is to use applications like Resource Hacker to modify the .exe and .dll files respectively, with changed icons.
A suggestion is, to design our own icon theming format. The simplest, easiest and most intuitive solution, is to simply provide .icl (Icon Library, a DLL file without any callable functions) files for every .exe and .dll file provided by ReactOS. The theme directory is set in the registry, and all internal applications and libraries will look at this directory, see if their respective .icl file is present, and if it is, use its icons, instead of the internal ones embedded in their own resource tree. If an icon is not present in the .icl, the application/library will also fall back to the respective internal icon. This should probably be easy to implement, as shared code included in every application code.
From a themer's point of view, this is also easy, as locating an icon is simply a case of pinpointing which file contains the icon in question, compiling an icl file, and placing it into the theme directory. Some simple documentation on which icons are generally found where (start button icon -> user32.dll, my computer icon -> shell32.dll, etc) should be included as a guide to get themers started.
(REQ: coders' point of view on this suggestion)
I have the following idea that Windows never got. Another eye candy I would like is to see animated icon on my desktop acting to report something or simply to do something when clicked. For example a ringing telephone when an incomming conection is coming in or a jumping mail when a new one arrived. Hey the tray could be animated too.
Yeah, that sounds good, I think that could be done by using animated gifs, what shouldn't be hard to implement. Maybe you could create an xml file with instructions which gif to load at which action. That could be a great feature.