Great question. This issue comes up a lot, and I mention it as a limitation in my most recent GraphQL talk: https://youtu.be/6GyubnT38EQ?t=17m25s. I don’t think GraphQL makes this problem worse. For example, if we loosened the type system in GraphQL, schema federation would become a lot easier since different GraphQL endpoints could dynamically refer to one another. But that would take us back to square one on predictable responses. The GraphQL community is aware of the problem, and hopefully we’ll make forward progress on it soon now that the RFC process is in place.