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.