"Both of these could be solved with caching, though."
Sounds like it is up to you if the app you deploy to the app store will have this ability or not or on which side of the spectrum you want to be.
When you look at the Facebook app (or other popular apps) they've found ways to 'update' parts of the application (or behave differently eg for a/b testing of new functionality) without the user having to download a new version.