I've (finally) tried both FreeNAS and NAS4free and I'd like to share some thoughts and experiences. Both of these are "NAS-in-a-box" products intended to be installed on computers with a large number of drives, which they will export to the world in a variety of protocols. Both are based on FreeBSD, both fully support ZFS and they even share a common history.
The tl;dr of this post would be something like "yes, they are similar enough to be interchangable, BUT...", as I actually cannot give a more specific advice. Read on for why.
I tried NAS4free first, because I found a forum post in which the person had a bad experience with FreeNAS and claimed NAS4free was more stable. Since NAS4free is currently based on the latest-and-greatest FreeBSD version (9.1) while FreeNAS uses an older version (8.3), I thought it would be a safer bet, especially since the hardware I'm using it on is a very recent model of IBM x3630, and I know it takes a few months for FreeBSD to get driver support for new revisions of NICs and RAID controllers. (Anti-endorsement: don't buy IBM hardware for anything except Windows. It will save you headache).
This hardware was ordered with a RAID controller based on LSI 2808, supporting RAID5 with 512 MB battery-backed cache memory. Since I have marginally better experience with hardware RAIDs than ZFS's (and since there is no hot-swap-and-rebuild support in FreeBSD's ZFS yet), I've chosen to create a hardware RAID5 pool over 8 of its 3 GB SATA drives, and put it all in a ZFS volume. This server will be used for storing large, infrequently accessed files.
While installing NAS4free I was puzzled about which variant to install - "embedded" or "full" with several subpotions, and I've chosen the default embedded mode, on a USB flash drive, since it looked like the most hands-off. Later I found out it has some good sides and some bad sides. The installation of FreeNAS i more straightforward, with less options to think about but seems more robust.
I found NSD4free's user interface nice enough and, while it took some time to figure out the workflows for common operations, reasonably intuitive. A feature I especially liked (and which is missing in FreeNAS) is the "reminders" when you try to skip a step. For example, to configure an iSCSI target you first need to configure an iSCSI extent and a portal, and NAS4free will guide you "backwards" through the steps if you try to go directly to iSCSI target configuration. However, my opinion of its user interface changed greatly when I saw FreeNAS's interface - which is simply gorgeous.
The basic operations are very similar in both systems. There are GUI dialogs to create ZFS file systems and volumes, which are organized in a hierarchy (FreeNAS uses a literal tree so it presents this hierarchy better), there are services like NFS under which you can create shares, and there are system information and monitoring tools. I've found little difference in functionality between the two, but FreeNAS has significantly better monitoring tools, with built-in graphs in the style of RRD graph tools.
NAS4free, since it uses a newer kernel, has the new NFS code, which together with various improvements in SMP performance in the 9.x series should result in a faster, more stable server. In practice, I can't say I've noticed any difference, especially since the bottleneck is the gigabit network over which the server is used.
My intention was to get a running NAS server as fast as possible and not to make a comparison between NAS4free and FreeNAS. Since I've installed NAS4free first, everything would have stopped with it and this post would not exist, if it weren't for a large problem I've enountered. With NAS4free, using the newer FreeBSD 9.1 kernel, the server was simply unstable under NFS load. It would work fine for 6-8 hours and then simply reboot. Since I used the "embedded" install mode, I couldn't generate crashdumps, and since I didn't directly observe the console while the reboot happened, I can't even tell why it happened. It could be a kernel panic, or it could be something more low-level. The logs were useless for debugging.
So I switched to FreeNAS. Luckily, the compatibility on the level of ZFS is great, so I just re-imported the pool and continued working. I'm still cautious of the server, but it has been running for almost a week without problems, running 24h tests over NFS, so it looks safe to use. Unfortunately, it has an annoying problem (which was also present in NAS4free to a lesser extent): if I mount the USB flash drive read/write, everything slows to a crawl, and the IO "busy" indicator for this drive goes to 100% even though it only generates a couple of IO's per second. Also puzzling, the USB drive cannot be re-mounted read-only after this happens. I don't think this is critical (what I tried to do was customize the system by installing zabbix-agent on it, but it doesn't work that way - startup scripts and config files are lost on reboot anyway).
Ordinarily, I would recommend NAS4free since it uses a newer kernel and has all the basic functionalities that FreeNAS does, but for me, FreeNAS with its older kernel is simply more stable. Adding to this, it has a better user interface and a cleaner design (using sqlite for its database, yay!). But it also has the annoying slow USB access and is much harder to "customize" with additional packages (zabbix-client, in my case... I simply gave up and set up basic SNMP monitoring), so... I can't really say for sure. FreeNAS seems a better choice, kind of.