from looking at what Haret does, it seems that it just cleans the memory except for an instruction to load linux, then it boots linux configured to launch android afterwards. As far as I remember, android supports both yaffs and squashfs, so the system is loaded from a squashfs file from your sdcard. Theming any part of the system would mean either unsquashing the whole system, then applying the theme, then re-squashing. If we squashfs'd the individual directories (/bin /etc /app /framework /media ...) and specify those individual mount points, then we should be able to just unsquash /framework and /app, theme them, and then re-squash them to keep the "theme" upload to a minimum.
I'm still researching exactly on how all works (I'm new to winmo (and still hate it) and I just got my device two days ago and already thinking of returning it and waiting for nexus enterprise instead), but my goal is eventually to create and support an android rom for the rhodium, if I don't tire of winmo first and sell the device...
Best reference thread ever: Learn to compile your own AOSP build
(for sapphire, but applies to dream too)