Nothing wrong with visualization. And FN works fine. It is however a lot easier to break something virtual than a physical machine whose hardware don't change as easily.
Problem is that FreeNAS (or ZFS) have a bad temper and looses pools for no apparent reason. If it where more resilient then there would be no problem what so ever to visualize.
Generally speaking, the issue is that FreeNAS is intended to be an appliance, an interface for physical hard drives intended to make them a resource for use on the network.
When you create, let's say for the sake of argument here, a DHCP server VM, you take a copy of FreeBSD and install it on an 8GB virtual disk. Smart IT admins using it for production at their company will have it on a DAS RAID controller, or perhaps a SAN RAID controller. Home users may have it on an unprotected nonredundant datastore, because, y'know, a quality DAS RAID setup costs $1K+ just by itself (LSI 9271-8iCC plus CV). Loss of the datastore means loss of the VM. This is pretty much expected behaviour, right?
The problem is that virtualization encourages desperate people to do dumb things. So you probably want to share more than 8GB. So you decide to put a bunch of SATA drives on your ESXi box's SATA ports, make a bunch of datastores on them, and then make some monster-ass virtual disks on them. Put FreeNAS on top. Seems to work great. There are, however, multiple issues here, including that you cannot get status of the drives, so you lose out on early failure prediction, and that when a drive does fail, ESXi appears to wedge the VM's I/O subsystem until the datastore becomes functional again ... which places you in a real bad situation, because it isn't going to become functional again. So you have to hit reset on the VM, which is, frankly, dangerous. It becomes more fun because often these people want to use FreeNAS as the SAN for their ESXi ... adding much complexity to an already nonideal situation.
Now, honestly, if you have an enterprise grade virtualization setup, one with high reliability (RAID and maybe multipath) datastores, you can create virtual disks on top of that, and run FreeNAS on it, and FreeNAS will be as reliable as the underlying datastore. But doing so still causes some issues: what do you do about ZFS self-healing, for example? You need to use multiple disks so that ZFS has redundancy available at a layer that it can access. So now you're maybe doing RAID on top of RAID. This is not going to be great for performance.
There are no improvements coming that can cure stupid, or mitigate against lack of knowledge. These are the slayers of ZFS. FreeNAS in a VM is trivially possible and very pleasant if done right, but generally speaking the people who come to the forum looking for help are looking for a blessing to do it in some Wrong Way, or some Very Bad Way, or some Absolutely Going To End In Tears way.
My theory is that if you want ZFS to store your data, then you value your data, and if you value your data, then you shouldn't do things in some Wrong Way, or some Very Bad Way, or some Absolutely Going To End In Tears way.
So it isn't really a software problem. It's a PEBCAK class issue.