The thing is, ZFS allows just that!
If you would have read the info I linked to in my previous post you would already know that you can access every snapshot individually because it is browsable. Hence you can find out to which point you want to restore the whole dataset as well.
Additionally you can simply clone a snapshot state to a new dataset so the old dataset with all snapshots is preserved. You could then rename the original to [something]-old and rename the new one to the original name. All the functionality you require is there in ZFS. That is the point I am trying to make. It is all a question of breaking that out to the user.
I know this is hard, but please take your time read the stuff others reply with. It is much easier to discuss about desired implementations then and the result is much more likely to reflect what you actually want.
I took the time to write all this because I think at itโs core your request is valid and a good feature!