In this post about detecting resets, Bregalad wrote:
Note that those games does not clear the memory so this technique works.
One thing doesn't exclude the other though... they could just check for the signature bytes before clearing the memory.
I don't know if many commercial games clear the whole memory on start up, but I still think that just makes eventual bugs harder to detect. Most games are composed of "modules" that run one after the other (title screen, menus, main gameplay, bonus gameplay, etc), and each of those requires some cleaning up and initialization. By clearing the whole memory on reset you are just cutting some slack for the first few modules that run, because even if they forget to initialize some variables they might still work. However, if you run these same modules later in the game they might not function correctly.
So I'd just rather make sure that each module cleans everything up for itself, to make sure it will work well no matter when it runs. If they are defective in some way, I'll probably notice it right the first time they run and fix the problem right away.