Clients should be cached and reused when possible, but not the targets as the external targets configuration (e.g. CLI config) can change while the language server is running.