If I have a mirrored pair of 250GB drives in a pool, and I later buy two more drives and add another mirrored pair to the same pool, can that second mirrored pair be 500gb? Such that my total usable space would be 750GB?
Or do all the mirrored pairs in a pool need to be the same size?
Yes this is possible. The only requirement is that the mirrored pairs within the pool are the same size. ZFS does prefer to use the raw drive so ideally this means drives of the same size. But if you have a 750GB and a 500GB you can slice the 750GB to create a 500GB slice and use that slice in the pool.
This blog has some more details on this question and other questions about ZFS.
I don't think even the mirrored pairs absolutely have to be the same size, but if you hand both raw disks to ZFS you'll end up with a mirror with capacity the size of the smaller disk. Extra space on the bigger disk is wasted.
If you use partitions you won't have this issue, you can put other data on the other partition.