Ну, это опасно. Я постараюсь избежать этого, когда это возможно.
Ваше предположение верно - память не будет освобождена автоматически.
Проблема в том, что возвращаемое значение здесь - это память, выделенная в куче, вызывающая ваша функция должна помнить об освобождении. Вы выделяете память, которая не будет (вами) освобождена. Это всегда плохая идея, чтобы накладывать ограничения на пользователя вашего API.
Иногда (редко) этого нельзя избежать, поэтому, если вы это сделаете, убедитесь, что документ очень четко задокументирован.