I'm not sure what the goal of this intermediary storage system is. Would it be faster than setting it for the class in the constructor?
The purpose was to make sure credentials only need to be set once per request, not once per class. When you have a lot of classes covering different APIs of the same provider, you are likely to need more than one at a time. This was convenience to not have to set the same credentials 100 times.
It's very dependent on the API and the provider though.
With the new way though, storing credentials doesn't have to be limited to "per request" though. Now we could store credentials in a cache for a set period in time and only re-store it when the cache expires. This is not relevant if you have credentials in a config file, but it might if you fetch credentials from a remote system like Vault or AWS Secrets Manager.