I only dirty flash (just a dalvik & cache wipe), unless I'm doing one of the following:
- Going from 4.3 to 4.4 (and vice versa)
- Going from AOSP to CM base (and vice versa).
You only need to wipe data (factory reset) when you're flashing different framework, like an upgraded version or a different base (CM/AOSP). I'll only wipe data if there are issues with the function of the rom and I use it for troubleshooting only. The data wipe only zaps apps, app data and system data associated with the framework, so if there's no substantive change to framework, you don't really need to wipe that partition. If you know what you're doing, you can wipe only when necessary.
You should ALWAYS wipe dalvik and cache... because you should allow the new rom to build up that dalvik cache, rather than carry over from a previous rom. Many bootloops are caused by old dalvik data. We should probably be clear you don't need to 'format' to flash a new rom, only 'factory reset' or 'wipe data', which clears the data partition, rather than wipe the internal memory.
HOWEVER... as someone that compiled and posted CM builds in the past, if you dirty flash, DO NOT go into a development thread and whine about a rom not working. Make sure you've wiped data and maybe even reflashed after a full wipe before you do so. People that dirty flash and complain about roms not working only piss off devs.