Hola, mi opinion. Para todos los proyectos que realizo el uso del watchdog es una condición necesaria. En mi caso diseños los fimrwares de manera tal que la comunicación con dispositivos externos ( eeprom, uart, rtc, etc ) son siempre con time-outs controlados por un timer. Si algún error acontece en el acceso a los mismos lo reporto a niveles superiores. El uso del watchdog solo se limita a protejer el equipo ante un evento extraño ( ruido, emi, esd, etc ) que fuerzen al firmware a volver a un punto conocido de ejecución ( en este caso el Reset ). Nunca uso el watchdog para corregir errores de programación, para eso uso los intensivos unit-test. Como ultimo punto trato de elegijr en lo posible watchdog que esten alimentados por un oscilador independiente del clock principal del sistema, hoy por hoy es una recomendacion que los mismos tengas varias fuentes de clock. Y en el peor de los casos y en ambientes muy hostiles utilizo watchdogs externos.
Saludos !