It's actually not stupid.
This "feature" was put in because we live in a world where hubs still exist. As hubs are half duplex only, the RFC needed to support a link connection with a hub if it does not respond to "auto" duplex negotiation (which it can't). So the fallback was set to half duplex.
The standard for auto duplex detection requires both switch ends to be set to auto. If you hard code one end, you need to hard code the other too, otherwise the switch will assume it is talking to a hub.
It makes perfect sense when you think about it.
Keep in mind, auto speed detection and auto duplex detection are two different things. That is why the link comes up at 100 mbps (as the auto speed worked), but not the duplex.
Not sure why hardcoding both ends to 100 Full Duplex causes a link loss, but I can only gather this is more the (now) unsupported 5000, as the 2650 works fine with 4500's and 6500's.
Regards,
Shane.