Да, это будет выгодней.
Создание массива byte[] из строки (массива char[]) - это непросто. Для этого нужно было проитерироваться по char'ам, понять, сколько байт в данной кодировке займет очередной char, произвести необходимую конвертацию и записать байты в вывод. При этом мы даже заранее не знаем размер вывода - только его нижнюю и верхнюю границы.

Сохранение ссылоньки на массив как локальную переменную после компиляции вообще ничего не стоит - переменная будет заинлайнена куда надо.

Длина массива - это даже не функция. Это известная на момент создания массива константа. Взятие длины массива - предельно дешевая операция, которая сводится к взятию циферки из памяти.

Запись уже аллоцированного массива байт куда-либо - это пробег одновременно по двум итераторам - из одного читаю, в другой пишу. Это тоже достаточно дешевая операция.