Another suggestion: use unionfs-fuse to make COW overlays onto the root filesystem. FUSE is available and building unionfs-fuse should work fine. It's very similar to bind mounts, but it somewhat automates the copy-on-write path (but not in the first case presented next).
One option would be to have one overlay loop-mounted filesystem per package: They can be tailored specifically for the package regarding their size then. You would simply add/remove that filesystem-containing file in a special directory, let's say, "/mnt/us/overlays". Upon system boot, a single script would then be in charge of mounting each of these overlays onto e.g. "/tmp/overlays/<pkgname>" and then creating a unionfs mount to /. This gets messy however when it comes to writing.
Another option would be to have a general overlay filesystem and let packages just modify that upon installation/deinstallation.