I’m not sure exactly how we’d handle this for the SELinux policy.
Currently, we’re leveraging the special mechanism with file context policies to globally set $HOME/snap to the snap home directory so that snapd has read/write access to it without having the ability to mutate the rest of the home directory and granting all user applications free access to the content (as they are supposed to).
The /var/lib/snapd directory is marked with the snappy_var_lib_t context, which allows for snapd read/write. I’m not sure how setting a separate path for /var/lib/snapd/user/<UID>/ as snappy_home_t will work without conflicting with the original directive.
It also sounds like you want to give snapd too much awareness of the user state. In my opinion, user data is just that, user data, and should be handled by the user. If snapd needs intelligence for this, then I would expect it to grow some kind of command that can run to examine enumerated snap home dirs and erase the right stuff on uninstall.
In addition to that, your proposal makes user data private even from the user, which I don’t think is the right intent here.