I've actually made a computer like that as a hobby project - 12.5MHz custom CPU, with 4Kb of volatile fast RAM and 64Kb of non-volatile (but only half as fast) FRAM.
I think i mentioned it here -
http://forum.osdev.org/viewtopic.php?f=15&t=27702
I always wanted to have a computer that can be turned off, then turned on and resume working from the same place.
Didn't quite get there, but it was fun.
Resetting to a known state is not a problem - just make the bootloader check for a reset button being pressed at power up.
The OS architecture was more or less transactional. Every inactive task stays where it is, active task gets a power-fail exception.
The idea was that on power-off the volatile stuff gets copied over to the FRAM (there was a low voltage detect interrupt and a few milliseconds worth of capacitors).
In practice that does not work beyond saving the task state, and i had to assume that whatever is in the volatile memory is gone.
On re-power, a bootloader checks for magic numbers, then calls the kernel's resume entry point. The kernel re-initializes the peripherals (which are volatile), and continues the execution.
All in all, once you out of the bushes it's not much different from a regular computer on the user level.
And there really isn't any advantages (that i found) to the non-volatility.
At least not on this scale - the whole thing can be cold-booted just as fast, and most of the time is spent (re-)initializing the peripherals.
However, debugging in such a system can be FUN with a capital F.
Uninitialized variables, loose pointers and similar things can produce mind-twisting effects if you ever forget that a reset means nothing.
The closest word to it is "haunted".
The system just feels haunted.
You have to exorcise it every now and then by a full reboot.