Ah, but the car manufacturer doesn't require you to be compatible with their new cars.
Apple requires that our software works on all OS 3.0 devices. As iPhone developers, we literally have no choice. You can choose to support only the older models for bracket mounts. But your 2.2 software has to work on all devices with greater than 2.2 software and hardware.
Granted, most things "just work". However, I was hit hard by an iPod touch bug and a similar 2g vs 3g iPhone location services bug.
Honestly, the real answer is not to have subsidies in the first place. It's a stupid commercial opportunity that unnecessarily complicates the entire phone system. But it's what we have. I probably would have chosen an unsubsidized option at a higher price for the phone if such a thing existed (legally). And then I would be able to upgrade without *feeling* like I'm being taxed as a loyal apple customer.
It would be nice if apple had a paid/cheaper service for iPhone developers with minimal minutes and data for testing. But that is wishful thinking.