If the app drains too much battery, the #1 thing smartphone users care about, then expect a dismal rating and uninstall ratio.
As with anything software, the more there's code, the more the potential for bugs. Things should always be engineered to optimize for that metric (lower bugs). Of course, if it is cheaper/safer/secure to do something at the client, then its benefits must be factored against the complexity it may introduce.