Using a resizable memory buffer allows to allocate the right amount of memory inside the backend, avoiding having to know the required buffer size in advance.
The transfer protocol of the Suunto Vyper 2 and D9 devices is very similar, which allows to share most of the transfer code between the backends.