Re-use old buffers in new calls

This small change had reduced number of newly allocated buffers during testrun from around 32 to around 10.

Main concerns:
- Some buffers might not get back (go out-of-scope, forgotten), what then?
- Find a sweet-spot when to decide, that we no longer need buffers cache
- Mainly for long-running processes, not so useful for fire&forget

Probably not yet ready to merge, I just want to get someone else thoughts on this