Zimbra CalDav returns all items in a calendar or a task list, whether the filter VTODO or VEVENT is used. Each query thus returns the same hrefs and the assert that there are no duplicate hrefs aborts the second filter query.
This is apparently a bug in the Zimbra query (that seems to have existed for a while: http://www.zimbra.com/forums/developers/21993-caldav-call-not-working-100-a.html) - not sure the best way to handle this, but aborting on a duplicate item seems like overkill :)