Naaa, the manual isn't the documentation you are looking for. The source code is. That literally, is the only "documentation" that exists. Microsoft doesn't share with you and document in excruciating detail how everything works on their OS, and neither do we.
You want to see the "magic behind the WebGUI", that's where it *all* happens.
And the issues you've pointed out aren't unique to FreeNAS. For one, disks of differing sizes are already a known issue even when trying to replace a drive in a pool that was created with FreeNAS. And the FreeNAS to Solaris example is the same. Feature flags and versions are already handled by the zfs / zpool tools to manage compatibility and divergence. I don't think the way FreeNAS identifies the devices matters for compatibility either. Isn't there metadata on the drives that identify the devices? I know I've seen pools in FreeNAS with devices that weren't labeled with gptid.
You know that solaris does things totally different from FreeBSD? They have a unified memory architecture, and that makes ZFS a wholly different beast. Solaris tunables often don't exist in FreeBSD and vice versa. They often don't work the same because of the memory management between the OSes. Solaris used to basically require "whole disk/unpartitioned" zpools to function properly because the ARC could only handle "whole disks" (or something like that). ZFS on linux has their own recommendations on doing whole disk versus partitioned disks for ZFS. FreeNAS does a 2-partition setup and has decided for you. You also don't have to tell it what sector size to use, because the source code has already decided for you (4k). You have no idea how many decisions have been made *for you* behind your back, because of the WebGUI.
I dare you to install FreeBSD and try to setup SSH with keys, a zpool with proper partition alignment and 4k sector size, create some datasets and share them with NFS and Samba with AD integration, make the permissions work properly in NFS and Samba, and then actually mount that stuff elsewhere and use it to transfer files at LAN saturating speeds. If you've never done it, you'd spend weeks just trying to figure out some of the basics. Nevermind try to handle updates to the OS and the whole other host of very real problems and maintenance that you have to do on the server. I've heard people claim that what they can do in 20 minutes in FreeNAS takes them a week or so to truly set up properly in FreeBSD. I'd wager that 99.99% of us in the forum are probably incapable of setting up a FreeBSD server with the same kind of quality that FreeNAS provides if we were given 3 months to do it.
You have no idea how good you have it with FreeNAS. I wouldn't even take the challenge if I was offered.
The *only* thing that various ZFS implementations have in common is the file system structure itself should be compatible. Not always, but *should* (despite feature flags and everything else). If you read around in FreeBSD there are lots of ex-solaris guys that rebuilt their pools in FreeBSD because they were aware of (and often ran into) problems when going cross-platform.
To reiterate, I'm looking for something like a known issue where a pool that is created on another system can be imported successfully into FreeNAS (versions and flags being compatible), but the pool will fail because FreeNAS assumes it's "layed out" in a certain way (what does that mean?), but fails to check that it actually is. Something like that would be good to know about (and filed as a bug to be fixed), but aside from references to anecdotes claiming that pool failure was due to a non-FreeNAS pool, I haven't seen any evidence that it's an issue. I haven't tried or needed to import a pool from another system, but shouldn't these issues be clearly documented somewhere?
Ok, so pretend a pool is corrupted that came from Solaris and worked in FreeNAS for 2 months. What went wrong? Was it before FreeNAS or after FreeNAS? Was it because of a bug in the Solaris ZFS code? How are you going to prove that? Do we (as the small entity that is FreeNAS) really want to throw developer resources at a problem that *only* manifests itself when someone tries to move a Solaris pool to FreeNAS?
No, you have to put it in perspective and think about the big picture...
1. We (as a development team) are *much* too small, insignificant, and inexperienced to try to troubleshoot a problem that is very likely the result of something from Solaris' world that went badly or is otherwise incompatible.
2. I don't *want* developers spending stupendous amounts of time trying to troubleshoot those problems. I want them fixing big problems with CIFS, NFS, *our* ZFS bugs, etc. The stuff that we *do* see regularly. To hell with the few people that want to take a pool and go all over the world with it. If they want that kind of flexibility they can go to FreeBSD (see the challenge I mentioned above).
3. This is *not* an issue that is/was/ever will be limited to FreeNAS, FreeBSD, Linux, Solaris, etc.
4. This thread was about Mac ZFS. I never used it, but people that have talked about it in IRC in the past said it was about the worst piece of software they've ever used. Do we really want to be tied to that?
I am also with jgreco that I'm not going to discuss this further. It doesn't matter who wants what and the people that made that decision do not routinely hang out in the forums. In an ideal world ZFS would be compatible and work. But we don't live in that ideal world, and we never will.