Some technical details available here: http://www.zabbix.com/documentation/2.0/manual/config/notifications/action/operation/other
I've performed several experiments with and without proxies (all are ~2.0.4rc1).
I used two discovery rules (1st(id=10) - zabbix agent check "system.uname", 2nd(id=11) - snmp check "SNMPv2-MIB::sysName.0") with identical short IP range.
In each discovery rule I used NOT IP address uniqueness criteria but different ones - zabbix and snmp respectively.
Returned values for particular host were different for agent and snmp checks.
Without proxies the result I've received was as expected:
snmp interfaces have been added to existing hosts (already with zabbix agent interfaces)
It's actually described in documentation bottom of a page http://www.zabbix.com/documentation/2.0/manual/discovery/network_discovery.
There hard to complain for zabbix server because a server executing it has single routing table.
But ... there still could be an option to control this - create new host or add new interface.
But WITH proxies received results were as not intuitively expected.
I had hosts (with zabbix interfaces) created by 1st drule DISCOVERED by a 1st proxy,
then I disabled 1st drule and enabled 2nd drule performed on another 2nd proxy.
IPs from 2nd proxy have been added as snmp-interfaces to hosts previously created by 1st discovery from 1st proxy.
We know that zabbix server is responsible to process results of network discovery from proxies.
But in this case I would expect that zabbix server will take care that results of discovery returned from ANOTHER 2nd proxy.
So zabbix anyhow is not ready to perform discovery of identical IP ranges.