Как принято понимать параметр size в функциях C/C++?
Размер в байтах используется чаще тогда, когда обмен идёт неструктурированными данными, или данными с элементами переменной длины. Обычно указатель на данные при этом типа void *.
При обмене массивами с элементами фиксированного размера обычно удобнее использовать количество элементов.
Слегка в сторону. Что будет, если вы передаете буфер long[size], записаный на машине с big-endian, а читаете поэлементно... ну ясно, да? Если вы пишете библиотеку, то атом сериализации - это все-таки байт. :)