I use IPVS with direct routing and wrr scheduler. The problem is that for some configurations I get "icmp port unreachable" when one of the real servers fails and is removed from the ip_vs tables. The smallest case where I can replicate the problem is the following:
ipvs# ipvsadm -A -t virtual.service:http -s wrr
ipvs# ipvsadm -a -t virtual.service:http -r realserver1:http -w 100
ipvs# ipvsadm -a -t virtual.service:http -r realserver2:http -w 1000
client$ wget -O - http://virtual.service/
[works as expected]