If you don't test your apps on all devices you specifically target, your users will do that for you. Ouch...
Just remember, negative reviews tend to stick around.
>I have a couple of books on order that should help me navigate the uncharted (for me) world of ios development.
Unless they deal strictly with Obj-C or Cocoa, send them back. They'll frustrate you with out of date info, taking your money without support, sending you back here with pointless questions.
>When ios5 is introduced, would all iPhones from 3Gs to 4Gs not automatically download the upgrade, or do users have a choice?
It isn't automatic. Those users can choose not to upgrade, but since it will be no cost and leverage iCloud, etc. it is a good bet that uptake will follow trends and climb within a few months. Apple pushes users forward - devs need to work with that as a trend, I believe.
>If they do all upgrade, wouldn't an app developed on a 4G running ios5 be compatible with any iPhone also running ios5.
Loaded question...in general, yes, but is 'in general' good enough to promise your app in particular will be compatible? If your users test for you and complain in the store, those reviews can be hard to shake. You should consider it due diligence to perform whatever testing is needed to your own app so that it doesn't fall flat in the store. Again, what that means depends entirely on your app and what device features it may or may not require.