> How is a single endpoint for all queries a good idea from both front and back end perspectives
Trying to project complex queries into a list of flat strings (path) is just not good. Having a standardized query language is much better.
> How is writing queries in the front end and exposing those queries a good idea
It's better than making x technical requests for one semantic requests because it's easier to keep track of what is requested and what is just correlated by time.
> How is exposing the back end data structures a good idea?
If you do that with either REST or GraphQL you are either doing it wrong or you care about speed a lot and generate your graphQL from your backend structures.
GraphQL is especially nice if you have one backend and one or two frontends that you control.