Introspection is a key part of GraphQL: the schema is self-describing.
Introspection data is derived directly from the schema.
:description key is added to the schema to provide additional help.
Introspection is necessary to support the in-browser graphiql IDE.
Introspection can also be leveraged by smart clients, presumably custom in-browser or mobile applications, to help deal with schema evolution. A smart client can use introspection to determine if a particular field exists before including that field in a query request; this can help defuse the process of introducing a new field (in the server) at the same time as a new client that needs to make use of that field.