I like creating containers directly based on my host system for development and destructive purposes. It saves space and is incredibly useful.A solution for that already exists. It's called btrfs snapshots. Which you probably already know, since it's probably what you're using :-) Using overlayfs would simply mean that each container consists of an upper and lower directory instead of a single directory. Either or both could still be btrfs subvolumes. They could even be on the same subvolume.
This isn't a full response, still researching details of our setup and whether overlayfs could work for us. But in re this particular usecase:
as I understand it, the lower layer for overlayfs is immutable. So if you set up a container/VM image in this way with overlayfs, you end up not being able to reclaim space from the original image, if e.g. you uninstall or upgrade a package present in the original.
This wastes disk space, and, if you want to migrate that subvol over to another machine/disk via btrfs send/receive, wastes network/CPU. Hopefully not a lot -- hopefully your container image is mostly immutable -- but for long-lived VMs like I usually use personally it could be basically the whole VM image wasted.