I basically copied the approach for the BatchedStore proxy - https://github.com/twitter/summingbird/blob/develop/summingbird-scalding/src/main/scala/com/twitter/summingbird/scalding/store/ProxyBatchedStore.scala#L28. I could change the ProxyBatchedStore to use the same approach as you suggest, but this would break people's code (I see one usage in the Twitter codebase).  Do we prefer consistency within sb or proper use of primitives?

Re your second point, the idea is to facilitate extending a ClientStore (not only ReadableStore) - e.g. for dependency injection via implicits. Or via guice, if you like to live on (the) edge, like macaw.