Downloading static resources has next to no impact on server side resource usage (except for transfer allowance). Of course this assumes you have configured the server correctly to use a decent static resource HTTP server such as Nginx which is lightning fast for such operations. You could even use a CDN which would speed it up even more.
Caching can be used both for browser clients and with API clients and so it doesn't make much difference one way or another. Remember you are just caching the result of a server side operation in RAM so that the server doesn't have to do the same operation over and over again. It doesn't matter if the result that you are caching is a bunch of HTML or JSON / XML.
Static resouces to be stored somewhere... Caching can be expensive and is annoying when you need to change something right away.... Javascript mvcs are slow and so are the animations...css helps with some of that but not in all cases... And there different levels of support so it goes back to my if you have to write proprietary code anyway...
Now the use case forgetting around the app store is a valid one but even then you have to get special permission for that...