See server.cpp::process().
Currently we clear the shardconnection cache after every request that gets a response. This is now too conservative, since write ops are upconverted to use batch write commands and do not require the same connections stay open to enforce GLE. We should clear the thead-local cache after every operation.
Impact is small in a cluster which isn't doing up/downconversion, but we want to be consistent and easy to reason about.