`Dispose` should clear the buffer if it still owns the buffer by then. `ReturnRentedBuffer` should provide a flag specifying whether the buffer should be cleared.