I recently submitted https://github.com/snapcore/snapd/pull/6436 to support backup applications (it is undergoing review and iterations). Would this interface (and other existing interfaces) be sufficient for your needs?
Ah, restore. There is very little difference if you need write access to the entire system. Remind me, is deja-dup about full system backups or user data backups (I see only the session dbus service locally, which suggests the latter).
It emphasizes user data backups (defaulting to just backing up $HOME).
But it allows backing up and restoring system files too, as a supported-but-less-important use case. (It will prompt for access via policykit if needed when restoring – another thing unlikely to work in the confined space.)
So. Classic mode would be the easiest “no feature loss” path for me. But confined read-system/write-home access could be another path. It’s not my preference to offer a less featureful version via snaps (mostly because I’d have to add some code to handle what to present to the user in that case), but I’m certainly open to an argument that more classic snaps in the world is also a bad thing.