On my 2.2.16-1 system, I have two nics. In cases where I boot without the Eth0 nic in place, the system sees the eth1 NIC, activates it and
assigns it the parameters for Eth0. I have my conf.modules associating the correct and different module with the correct card, and the cardctl
ident shows eth1 is present... but it's still set up with eth0's info.
If required, I can test with 2.2.16-3 / Pinstripe.
This is just the way the Linux kernel works. I suggest that
if you are in the habit of removing eth0, that you change
them around, so that your old eth0 becomes eth1 and vice versa;
also change around your configuration files
(/etc/sysconfig/network-scripts/ifcfg-eth* at least) to match.