Is there any good, sound, technical reason why iOS4 won't run on 1st-gen hardware (iPod and iPhones)? I understand some hardware may be missing (bluetooth on 1st-gen iPods and 3G on 1st-gen iPhones) but the computer that runs the show is pretty much the same as the 2nd-gen ones.
The technical reason is they want you to upgrade.
Apple's all about the user experience, and I think they have rightly judged that enough of the new features won't perform adequately to be a satisfying user experience.
You can quibble about the call, but how many other phone OS vendors would support 2-year-old phones for a free upgrade? How many other phone OSes even do upgrades on old phones?
(Android does, a little, but I think most of the Android vendors aren't supporting, e.g., Froyo, on their older 1.5 handsets.)