-Cannot single step through routines which write to the onchip EEPROM
That's right. The manual, chapter "4.1.4 Illegal EEPROM Operations":
"The part enters STOP mode and a program or erase command is in progress. The command is aborted and any pending command is killed."
-Cannot break/resume with WDT enabled (most of the time).
Of course not. Don't debug with the wdog enabled and you'll be fine.
-EEPROM does not retain contents between BDM debug loads (of course the entire memory is flashed from debug session to debug session)
That one is trickier. You can do it in Codewarrior if you use the old "cmd"-files. In preload.cmd, write:
reset
FLASH
FLASH SELECT
FLASH UNPROTECT
FLASH ERASE 1-8
FLASH ARM
1-8 is the page numbers, for an HCS12 with 8 pages of flash (128k). If you just write FLASH ERASE without any numbers it will erase the whole memory, including the EEPROM which is page 0 if I remember correctly. By adding 1-8 it will only erase the flash.
That's the only way I know of. You might have to set the debugger to "load code + symbols" instead of "load code to nvm" for it to work, since the latter is the new feature introduced in CW3.0 and not compatible with cmd-files. Or so did Metrowerks tell me back then.