I've carefully read your proposal and I have to agree with you about the frustration of some levels, where it can become tedious to have to start over again after a small mistake.
Your proposal is reasonable, but it's not practical because the fruits don't always have to be taken in a specific order (some can be swapped). Furthermore, it's possible to take the fruits in a different order to reduce the number of moves needed to complete the level. At the very least, a system could be implemented to manually save the snake's position.
I was actually already planning on including an "undo" system in future versions of Gravity Snake to move the snake back a few spaces, and theoretically I could implement it with a little effort.
What do you think?