I agree we would be fine if all memory was nonvolatile, as long as all the other properties like latency were preserved.
In terms of software robustness though, starting from scratch occasionally is a useful thing. Sure, ideally all our software would be correct and would have no way of getting into strange, broken or semi-broken states. In practice, I doubt we'll every get there. Heck, even biology does the same thing: the birth of child is basically a reboot that throws away the parent's accumulated semi-broken state.
We have built systems in software that try to be fully persistent, but they never caught on. I believe that's for a good reason.
In terms of software robustness though, starting from scratch occasionally is a useful thing. Sure, ideally all our software would be correct and would have no way of getting into strange, broken or semi-broken states. In practice, I doubt we'll every get there. Heck, even biology does the same thing: the birth of child is basically a reboot that throws away the parent's accumulated semi-broken state.
We have built systems in software that try to be fully persistent, but they never caught on. I believe that's for a good reason.