I'm currently using overlay because I leave my docker mount on my root partition since ZFS has always been a pain for root. I hear Ubuntu 19.10 is smoothing that over a bit though.
It's too bad because I've ran into issues on lower memory boxes where the Linux block cache and the arc compete for memory and cause performance slowdowns or errors. If all the filesystems were ZFS this wouldn't be an issue.
Also all the other ZFS benefits like resisting bitrot etc.
So all you need to do is manually specify the volume driver to overlay2 when your FS is ZFS, and this just works?
on block based CoW FS, shared executables and libs will not be shared among containers, because file cache is file based not block based.
Using Overlayfs - or other file level CoW storage, when one starts several containers from the same image, shared libraries and executables will be loaded only once(so will be actually shared) across containers.