Definitely depends on your domain, but as someone who mostly works with APIs and mobile apps to consume them, I wouldn’t use Lambda directly.
Having an intermediary like API Gateway between your app and lambdas is pretty valuable in itself. It decouples your mobile clients from needing to know about all the lambdas, and from them changing.
You can’t force iOS and Android app updates, so whatever coupling you put out in the wile, needs to supported for quite a while. Even with automatic updates, this is at least months until there’s an insignificant number of people who haven’t updated (depending on your domain).
So as your backend evolves, do you just deploy new Lambdas and leave the old ones running for backwards compatibility?
If you change things with your AWS roles and IAM, does that break all existing apps in the wild?
I quite like having a standard HTTP interface so I can manage what’s exposed to apps better.