Is it still worth it for a game developer to try and support older devices: iPhone 3G and earlier or to support older OS: iOS 3.x and earlier? Or is it recommended to make use of OpenGL ES 2.0 supported be the iPhone 3GS and above? Do you know what percentage of users still use those earlier version of devices/operating systems?
Really... It depends on your goals and resources.
For an indie, a rule of thumb is: if it takes more than your spare time to support then no. The iPhone 3G is a legacy device.
Apple still services it when they come for repair, but there are no iOS updates and users don't expect all apps to be available on it.
With iOS 5 the iPhone 3G will be left behind. It can't run 4.3 and users using it will have the opportunity to get a new one discounted by their carrier. You can't be sure the hardware will be supported when iOS 6 is released, so is it worth to add support for just one year or less?
If you don't support the device, the impact it will have on you will depend on the kind of game you produce. If you have great graphics people will understand. Otherwise it will be harder to mitigate the response from iPhone 3G users.
At my previous employer we had to support all versions as long as the SDK allowed it. But the maintenance cost was not huge as we had our own framework and all games used it. So keeping it compatible with all iOS/Android versions was not an issue. But we didn't use OpenGL ES 2 to avoid issues with older hardware and other OSes.
But for an indie developer its more a question of time and $. I would really advise to get the game out there and patch it later if you can to allow other users to get it.
If you aim for budget users, if you have some sort of social game, then I would say: use OpenGL ES 1 support the oldest devices you can.
I remember hearing there have been Around 35M iPhones 3G sold... You could try to extrapolate the sales from this chart for what is worth: http://fr.wikipedia.org/wiki/Fichier:IPhone_sales_per_quarter_simple.svg
I don't think there are precise numbers freely circulating. But you should not waist your time if you really don't need to support the older devices. Simply add support if its free or close to free in your case.
When iOS 4 was introduced, the app store introduced a new rule: "You can't upload binaries which deploy for iOS 2.x". This sent a clear message that Apple doesn't want to have users nor developers trailing in firmware updates. Since today (depending on where you live on the globe) Apple is expected to announce iOS 5, the app store will likely disallow uploading binaries which can be deployed on 3.x.
But this is speculation. Think better that by the time you finish your game iOS 3.x devices will likely not be in use any more, or represent such a fraction of the whole market that it is economically not sensible to develop for them. There are similar questions/answers here with more information and links to statistics.
UPDATE: Well, my speculation was wrong. Apple has not banned 3.x development, the latest Xcode still allows deployment of 3.x and I haven't seen any new notes about deployment versions when uploading to itunes connect, so at least I will try to keep providing 3.x compatibility for the apps I have which support it. As a reminder, only original iphones and 1st generation ipod touches are unable to upgrade to 4.x.
UPDATE 2013: Looks like Apple dislikes old hardware, the recent Xcode versions don't work on lesser than Mountain Lion machines and they don't support building binaries for armv6, meaning devices which can't upgrade to iOS 4.x. It is still possible to download Xcode 4.4 manually from Apple's developer file section, the last supporting 1st generation devices. Grab it while it lasts if you want to support old hardware!
No, for two reasons.
1) While there are a lot of "old" (pre-OGLES 2.0) devices out there, they account for only 5-6% of the market share of people actually playing/downloading your app, depending on who you ask. Here's an example of a company announcing the drop in support for older devices: http://www.ngmoco.com/we-rule/blog/2011/08/11/support-for-earlier-generation-devices/
Keep in mind that that particular example is a free-to-play game, so it probably has a larger percentage of older device users (think hand me downs to kids and that kind of thing) than people who have newer/faster/shiner devices. This, however, is speculation.
2) It's hard to test. Unless you have an iPhone 3G or a newer device with its near-original OS installed (like an iPad 1 with 3.2.x installed), you can't be sure that the newer features you may want to use (like GameCenter) are going to fall back gracefully. You can accomplish it by using weak-linking, but Apple doesn't test it for you. If you don't set it up properly, what will happen on the devices using an older OS is that it will just crash.