Values are set to 0 on startup, sure, but they are not set to zero on program reload (not sure about RAM, but VAR are not).
So if you have a program running, make a change, upload that - it will load and start running but with whatever WAS in the registers.
If you want your code to always behave the same, you may need to clear them to ensure consistent behavior.