Currently, the drawing code for every single element is in the draw_parts function of graphics.c. Whenever I go looking through that to change the drawing of my custom elements, it always seems to be organized in a rather confusing manner.
I had an idea that the current system for updating the state of particles (e.g. UPDATE_NEUT) could be extended to include drawing the particle in question. A new set of methods could be defined (e.g. DRAW_NEUT), located in the files for each element. The current display mode would simply be passed as an argument into that method.
This would significantly reduce the complexity of the graphics.c code, and potentially lead to a performance boost. In addition, it would make the changing of element appearances (in mods) a LOT easier.
This has been suggested before (including when the update_STUFF system was originally proposed). One of the reasons for splitting the update_STUFF functions into separate files was that more things (such as drawing) would probably get put in them later.
However, draw_parts is a whole lot more tangled than the particle interactions were. Loads of complex if statements and code shared between elements all over the place. Not an impossible task, but it wouldn't be quite as neat as the update functions.
Drawing doesn't take much time compared to physics calculations, so any performance boost wouldn't be very big.
This might happen some day, but probably not any time soon.