I'm thinking out loud here, so I may easily be confused, but... What if we replaced the chroot() system call by an overlay file system, mounted over some subtree? The advantage is that that file system could be mounted read-only, nosuid, nodev, even noexec.