One more Cons for the GraphQL is that it makes it harder to keep business domain in a narrow place. Ability to pull in any data leads to business logic implemented on client side and beyond (in addition to business domain already spills into database/persistence due to data integrity constraints). While it may be not quite visible, or in some cases even desired (so backend becomes just "anemic" database), this can backfire later if not taken seriously.
If it were that simple, Semantic Web would rule now. And Sematic Web tech (eg SPARQL/SPARUL/JSON-LD) has way better features - for instance, ability to exchange graphs, not just trees.
Luckily, there is no need to stick with just one solution. RPC, REST and GraphQL can co-exist.