> Also, based on the desktop.el and Gnus use cases, it seems important to
> be able to save a state which is not in a variable (e.g. the frame
> configuration),

I'll look into these specific use cases, but ultimately everything can be (and probably already is) stored in variables.

Also, I don't know if that's what you meant, but I see now it would be useful to have an :init property on stash variables (similar to the one in defcustoms), which would only be called if the stash was loaded from disk. This could be used to restore frame configuration, for instance.

> and it's also important that those persistent vars don't
> be reloaded eagerly at init time, but later on when the corresponding
> package is loaded/activated.

Yes, that's how it works.