So if you have a server with several vdevs that are full and you add another to the zpool, can you have the system redistribute that data evenly across all vdevs?
Only way to redistribute the data evenly across all vdev's would be to take all the data off the pool that you want balanced and then then put it all back on. It's not pretty but it's currently the only way.
Because I work with a lot of archive files that will never be re-written and I continue to grow my storage every few months I usually create a script with this command that re-writes all the data for me. I'll have it go through the process at least 2-3 times to get the data to spread out evenly. This will basically write the data in a new directory and then run again to write the data back to the original directory.