sorry_i_noob, echo '<div id="output">' . some_text() . '</div>';
echo покажет, когда вся строка будет готова, а не когда пришла первая строка, на момент '<div id="output">' . some_text() . '</div>' все собирается в буфер, но при some_text() срабатывает другое echo (внутри функции), ей нечего ждать и выводит сразу, при этом функция вернула строке null, ее присоединили как пустое значение '', дальше вторая часть строки и только теперь основной echo готов показать всю строку