Isn't this dependency injection though? As in, the caller must manage the buf() dependency on it's own - promoting performance and other qualities like code reuse. For example, the caller might have a library that manages creating these buffers for large bytes or maybe over network or what not. Then such dependency injection will promote code reuse of the library as well.