Throughout OkHttp I've avoided this pattern of wrapping with a buffer only-when-necessary because there's some small behavior consequences. When you wrap with a buffer, you draw bytes from the input more eagerly than otherwise.