What are the specific restrictions on downgrading an iPod Touch to previous iOS versions? We want to test our iOS app on a few devices (iPhone 3G and 4 - or equivalent iPod Touch), but we also need to ensure it will run on the major releases of iOS, maybe 3.0.x, 3.1.x, 4.0.x, etc - I'm a little rusty on the version numbers and who got free upgrades to what.

I've read Is there a way to downgrade a 2nd gen iPod touch from iOS 4 back to 3.1.3? but I'm still unclear whether or not we can just buy a single iPod Touch and downgrade and upgrade as necessary, or if we'd have to buy an iPod Touch per iOS version we want to test.

So, what are the specific restrictions placed on downgrading? Can we just get our devices into DFU mode and apply whatever version we want? I don't want to end up buying a lot of devices if we only need one each.

We don't need any phone-only hardware such as the microphone or sending SMSs, so that's not a factor.

Cheers!
(I'm not certain of this answer -- it's a somewhat educated hunch, based on using iPods for 10 years and Apple products for 25, and looking at wikipedia.  If anyone knows from actual experience, use that answer instead.)

In general, I would guess that you can downgrade an iPod to the version of the OS that it was released with, but not earlier.  So, for example, an iPod Touch 2g could probably be downgraded to iPhone OS 2.1, but not 1.1 (which wouldn't really matter since there was no App Store in 1.x!).  Each iPod Touch gen-N ships with the N.1 release of iOS, about a month after the corresponding iPhone ships with the N.0 release.

An iPod Touch 2g should run all versions of iOS for the iPod Touch that have an App Store, though it doesn't support all the features of iOS 4.  The hardware differences between iPod models might be a bigger issue for testing, e.g., older iPods don't have a built-in microphone.