The current (as of Dec 2008) iPhone SDK allows me to pick between 3 versions when I want to build an app: 2.0, 2.1, 2.2. -- I\'ll ignore 2.1 below.
My assumptions:
I'd pick option #1 - compile it to 2.0. This is what we do for our app. There are still a lot of people running the old 2.0 O/S and if you compile to 2.2 your app won't run on their device.
That said, if you develop your app and run into a bug and find out that it's been fixed in a later firmware version, you may not have much of an option unless there's a workaround. There are also new features added to each new version although I do not know of a comprehensive list of what those features are (at an API level).