Tech info: flashing the firmware - ntadmin/DGND3700v2 GitHub Wiki
A key component in upgrading the Netgear firmware is flash_eraseall
. The system version it ships with is built into Busybox but it is actually bespoke code which has been added into Busbox. If flash_eraseall doesn't perfomr as expected you will notice it when you upgrade from the firmware with the duff code, not when you put it in place.
A solution to this is to compile a very minimal version of the Busybox shipped with the firmware (the source from Netgear) with only flash_eraseall
enabled and to rename the execuatable flash_eraseall.
A better solution might be to configure the main busybox to include flash_eraseall and force it to act like the Netgear version. However, the Busybox flash_eraseall is lacking some of the options from the Netgear version, so this would be non-trivial.