I've just created a GitHub class which internally uses RestApi and GraphQLClient for different functionallity. Naturally the fact which function goes to which API is hidden from users.
Now the problem: InstallationBasedTask uses rest_api and graphql_api directly. It does not use GitHubProvider at all.
I assume this is historical and not intentional?