For example, I have a 4x2TB RaidZ1 set up right now, but I would like to add only a 3X4TB RaidZ1 in addition to it. Is there a way to do this with zdevs/another Zpool?
While as already answered it is technically doable, beware that what you want to do is not a best practice as you end up with an unbalanced pool with sub optimal performance.
All disks in a pool should be of the same size (outside log and cache devices) and all striped vdevs should have the same organization.
You break both of these rules with mixing 2 TB and 4 TB drives, and striping a four disk raidz with a three disk one. You'll have to use
Yes and Yes. You can add multiple VDEVs to a pool, they need not be similar. You can add multiple pools to a system, each consisting of whatever VDEVs.
Note: Once you've added a VDEV to a pool you can not remove it. The only things you can do are replace the disks in a VDEV and add/remove disks from a mirror. If you want to change the way the VDEVs are organized you have to create a whole new pool with the new arrangement then send/receive the data.