I've got a project that has a Mega328PB with an external clock and the AVR watchdog isn't quite enough to insure reliability (during the first few minutes after startup there's an occasional glitch that's enough to lock things up. No, there's really nothing I can do about this. Previous versions of the project had an ATTiny841 that had the ability to programmatically switch clock sources, but the 328PB can't), so I've added an external watchdog circuit. Everything is fine when the part is programmed, but the bootstrap is a problem. Before programming has occurred, there's effectively a 500 Hz (or so) square wave on !RESET. avrdude says that the chip isn't responding when I attempt to program it.
Now, I'd expect this to be a non-issue. Programming starts by pulling !RESET low (the watchdog output is an open-drain, so something else pulling !RESET low is no problem). Why should it matter if !RESET is *already* low?
I've added a solder jumper to allow the watchdog to be inhibited for programming, but this seems like it oughtn't to be necessary.