I have eth0, eth1.
For each interface run dhclient on default port 546 (547 ?).
eth1 does not have connection to the network.
If dhclient for eth0 bounds before dhclient eth2 starts the eth0 gets IP.
If not, it do nothing, just sends solicitation, but tcpdump shows answers from dhcp server.

Next, eth0 gets IP, when lease time expire, eth0 depref IP and tries to bound, but it fails for some reason, tcpdump shows advert from dhcp server.

Next, I run each dhclient on different ports. All works fine.

Do you happen to know is it known bug? Or it's not a bug?

Also I found in sources of dhclient that it do bind to 0 IP address. So that it listen for all interfaces. And somehow eth1 catch packets for eth0 and drop it.