I don't think it makes sense with OkHttp's API. It was necessary in HttpURLConnection because it didn't have an API like OkHttpClient: everything needed to be either global (like the cookie store) or per connection (like the proxy). The API in HttpURLConnection isn't thoughtful, and that's why they have the gross ProxySelector nonsense.

With OkHttp you can mix and match. You can create a client that uses a proxy and a response cache, and another client that doesn't use either. It's a more powerful API.

For the scenario you describe the class you want is ProxySelector, not Proxy. But the API lured you into thinking you wanted a Proxy, so that's what you used. I don't want OkHttp's new users to be stuck making the same mistake.