По поводу строк - всё равно придётся юзать NEW (хотя бы для каждого нового куска буфера), или ограничивать себя конкретной длиной строки.

А по поводу файлов - было бы интересно описать в этом треде механизм взаимодействия двух ББ через совместные области памяти, кажется, Илья Ермаков как-то раз упоминал о таком приёме, насколько я понимаю, там тоже использовались файловые абстракции.