I'm still on Zenoss 3.0.3, and feature-wise, it pretty much just works for my organization.
However, one big frustration is the inability to feed the OID of an snmp table into Zenoss and retrieve the child OIDs in that table and monitor and graph them just like you can with a single OID.
Is this supported in 4.x versions?
I realize one can use FileSystemMap.py and Filesystem.py as templates for walking an snmp table, as discussed here: http://community.zenoss.org/thread/15555?start=0&tstart=0 , and it doesn't require rocket scientist scripting skills, but it's not super trivial, either, at least not from my standpoint.