the build spec is a list of steps and each is done in incremental layers
right
seems reasonable
so instead of using overlayfs for the incrementality you just use zfs snapshots
if another container relies on existing layers you clone the snapshot for that layer
you can also now squash containers by just deleting all snapshots for a dataset
and get this you can distribute the individual layers or any combination of layers a client is missing using regular zfs send/recv