You might want to check whether the interfaces are being identified by their device names instead of their MAC addresses. If the detection order changes during boot, eth0 and eth1 can appear to swap even though the physical ports haven't changed. I'd also compare the output of ip link, dmesg, and lo...