В ситуациях, когда вы просто соединяете две строки, тогда оператор string + (или эквивалентно string.Concat (string, string)) вполне подойдет, независимо от длины строки.
Если это часть большой древовидной структуры, в которой множество элементов собираются в других объектах (что, по-видимому, и подразумевает вопрос), то лучшим подходом может быть передача экземпляра StringBuilder каждому компоненту.
public override void RenderForm(StringBuilder result)
{
_form1.RenderForm(result);
_form2.RenderForm(result);
}
....
public override void RenderForm(StringBuilder result)
{
result.Append("<span class='FormName'>");
result.Append(_formName);
result.Append("</span>");
}
Это потребует изменения всех компонентов иерархии, но, вероятно, улучшит распределение памяти.