> -- Цитата:
> Что вы имеете в виду?

Вот Вы начнёте применять к s2 операцию типа Replace и т.п. - тут рантайм должен будет понять, что строку менять собрались - и перед этим создать реальную копию (иначе поменяется и "ничего не подозревающая" s1, которую когда-то присвоили в s2).
Механизм работает; но в каких-то тонких ситуациях промахивается.


> -- Цитата:
> Да, при присваивании копирования не происходит. Разве это недостаток?

Люди, глядя на определение языка, имеют право думать, что string - это просто динамический массив символов. И в каком-то месте они налетают на такие оптимизации реализации.

Вообще, я для себя выработал железное правило: любые внизу лежащие механизмы с неявным поведением - зло. Потенциальный источник проблем. Помеха к нормальному проектированию... и т.д. Внизу лежащие компоненты должны делать конкретную работу; если же туда пытаются засунуть принятие решений ("умность"), то это выходит боком.