I've been flashing CyanogenMod 9 nightlies for months now, and the process to do so has become pretty much muscle memory at this point (if cwm ever changes its menu order I'm screwed). One step of this process has always fascinated me simply because I have no idea what exactly it does and why I have to do it: clearing Dalvik cache.

Actually, you don't have to wipe the Dalvik cache. Or the regular cache for that matter. They will be automatically refreshed as required.

While that is true for a non-rooted device, the minute you root an android device it goes out the window. Once you have rooted you have put the device in a state where it is entirely possible for things to get seriously out of whack because you will of course start installing things that don't follow all the rules religiously. That and odds are you will start changing boot-loaders and ROMs and other things that were _never_ meant to be changed in isolation, and there are different tools that do this differently - some clear the caches for you automatically when they think it is the right thing to do, but some don't...

In short, it is certainly possible to get away with not clearing the dalvik cache, but the rules are so complex as to what you can and cannot do without requiring a cache clear that it is simply more reliable to _always_ clear the cache when making a low level change. Think of it as good hygiene.