There is no good general purpose solution to this problem with ZFS -- or really any other filesystem that hasn't been specifically designed to cope with it.
So let's say you have two clients, one hooked up to FreeNAS A and one hooked up to FreeNAS B.
Both clients simultaneously edit a file, and make different changes.
What's supposed to happen in this case?
Tools such as Unison that are designed for bidirectional synchronization have to stop and ask what to do. Distributed filesystems that are designed to cope with this usually use slow-ish locking in order to be able to present the correct things to the clients, so that there aren't multiple potential writers.