I think I figured this out.
The ZPOOL variable was changed several times in the past.
Poudriere operates by creating ZFS datasets.
These datasets are mounted at different points under
/usr/local/poudriere, and such mounts are persistent, and re-created
during ZFS initialization.
When ZPOOL is changed, the old datasets become invalid and should be
removed.
The question is: who should remove them? The current answer appears to
be: nobody removes them.
poudriere just reuses the invalid datasets that are mounted on the ZFS
pools that aren't currently configured to use poudriere.
So I think that some sort of confusion related to the invalid datasets
caused the original issue for me.
The problem is gone once I deleted all poudriere-related datasets by hand.
Yuri