Thats what I thought at first as well. But as I started working deeper and using more frameworks (had to write some as well) that made the complexity go away. Adding data sources can be very easy and the frameworks, like Apollo, take care of all the things you had to think about previously. I know that there are of course frameworks that handle cacheing and query routing for REST apis, but the flexibility of GraphQL is unparalleled. I find them to be best suited to backing UI's that may get rethought and reworked every 6mo to a year. As well as for data analytics ad hoc queries.
My point is the can be very complex, but they don't have to be. I have a number of them deployed right now that are far more hands off for me than our other APIs.