We have implemented Zeroshell as a replacement for a Linksys RV016 multiwan router. So far it is performing very well.
We have 4 x ADSL2+ connections set up in the load balancer and this serves a network of around 600 computers.
The Zeroshell box is a 3.2GHz CeleronD.
The only area we have a few problems is with the virtual server setup. It really would be nice to be able to add a port forward range and the ability to apply to all WAN interfaces rather than just to ALL interfaces.
The limit of virtual server entries seems to be limited to 100 and we have exceeded that because I added a virtual server entry for each ppp connection for a particular port (i.e. takes up for entires per port forward with our 4 connections).
I found this necessary because if I just used a single entry with ALL interface selected I could no longer make outbound connections to any external server to the same port a virtual server was set up for. (seems to get grabbed by the matching ETH0 part of the ALL interface rule)
There is a bug once you hit 100 virtual servers too. If I delete an entry then re-add an entry I just keep overwriting record 100 even if I delete enough entries to reduce the total below 100.
We looked at PFsense and a few other router distributions but Zeroshell has been the easiest to implement and the load balancing / failover is great !!