The front end is an untrusted computing environment and anything you give to your front end developers you also give to potentially hostile users.
The security implications of things like GraphQL are, frankly, bonkers, but nobody seems to notice.
This is in stark contrast with the server side, where you do have a trusted computing environment and you can, to an extent, give your developers what amounts to "root" access to the database.
I wrote a blog post on this a while back:
https://intercoolerjs.org/2016/02/17/api-churn-vs-security.h...