Объясните мне зачем нужен сабж. Единственное преимущество, которая я вижу, что клиенту не надо менять дикак бэкенд, чтобы запросить другие данные.
Но - допустим, он захочет отфильтровать/сортировать по какому-то полю, для которого нет индекса в базе данных - это будет очень медленно и потенциально так можно создать огромную нагрузку на бэк.
Всякие join`ы тоже лучше как-то контролировать. Например, иногда лучше сделать отдельный запрос.
То что можно несколько запросов в один объеденить тоже странная практика. Во-первых по-идее через http/2 и т.п. и так можно делать несколько запросов через одно соединение, хотя я не думаю вообще что количество соединений - проблема. Во-вторых, когда запросы идут отдельно их гораздно удобней кешировать, делать инвалидацию кэша и т.п.
Ну и выхлоп его со всеми этими edges избыточных имхо и не слишком человеко-читаемый.