I personally created the ZFS zpool within proxmox so I had all the space I could give to any of the containers I needed. Then when you create a container, you add a mount point and select the pool as the source and specify the size you want to start with. Then as your needs grow, you can add space to that mount point within proxmox.
Say you have a 6 TB zpool and you create a dataset that is allocated 1 TB. Within that container, you will see a mount point with a size of 1 TB, but in proxmox, you will see that you still have 6TB free because that space isn’t used yet. Your containers are basically just quota’ed directories inside the Proxmox hosts’s filesystem when you use zpool. And you are free to go into that container’s settings and add space to that quota as your needs grow.
I have two containers pointing to the same bind mount. I just had to manually edit the config files in /etc/pve/lxc so that both pointed to the same dataset. I have not had any issues, but you do have to pay attention to file permissions etc. I have one container that writes and the other is read only for the most part, so I don’t worry about file lock there. I did it this way because if I recall, you can’t do NFS shares within a container without giving it privileged status, and I didn’t want to do that.