This is stemming from the fact that an unpriv application can't
create its sub-cgroups without explicit delegation from the root and
that has always been an explicit design choice.
It's tied to who's responsible for cleanup afterwards and what
happens when the process gets migrated to a different cgroup. The
latter is an important issue on v1 hierarchies because migrating
tasks sometimes is used as a way to control resource distribution.
OK, so is the only problem cleanup? If so, what if I proposed that a
cgroup directory could only be created by the owner of the userns
(which would be any old unprivileged user) iff they create a cgroup ns
and the cgroup ns would be responsible for removing it again, so the
cgroup subdirectory would be tied to the cgroup namespace as its holder
and we'd use release of the cgroup to remove all the directories?