If you want to create (for example) a pool raidz1 with 4 disk but the capacity of your disks is different you can obviously do that.
Everyone know that is possible but the pool will be limited by the smallest drive.
Pending you can buy others disks ($$$$$) i have a solution for minimum space lost and avoid to destroy your pool raidz on adding new disk.
I did all In command line.
Ex : with 4 disks : 2x1T, 1x500, 1x250G, you can have 1.75T of data storage.
(gpart create -s gpt "dev", and gpart add -t freebsd-zfs -l ada1p1 -s "size_in_bloc dev")
create partitions of 250G on all your disks with gpart and create a pool raidz1 with "zpool create -m /mnt/pool_name pool_name raidz device" with this 4 volumes.
create a second partition of 250G on the 2x1T and 1x500G always with gpart and create a pool raidz1 with "zpool create -m /mnt/pool_name pool_name raidz devices" with the three disk.
create a partition of 500G on the 2x1T always with gpart and create a pool mirror with this 2 last volumes, zpool create -m /mnt/pool_name pool_name mirror devices.
Synchronize the zfs config in nas4free wegui and let's start data storage.
Good you have 3 pool in place of one but you have 1.75T in place of 750G. It's only 1T of data additional. lol !
simply understand the reasonning and play with your own config.
If you don't understand how to upgrade with a new disk, ask me.
If you post a list of disks I will try to help you.

