Want to make sure I got that right:
Base SDK = What you're building against. If it's set to 4.1, then you build against the 4.1 SDK.
Deployment OS Version / Deployment Target = The lower end, or the oldest platform your app is aimed to support. If different than Base SDK or the SDK you build against, then you must do conditional checks so that older OS versions won't see a crash when your app calls something of newer ones, up to the Base SDK.
Is that correct?
Yes, that's correct
To the run-time checks I would also add weak linking with the frameworks added in new SDK versions.