あらかじめ100MBの文字列 st1 を用意しておいて、
st2 = st1;
を何回やってもメモリ使用量は増えない。
しかし、
st2 = st1;
st2 += "s";
だと当然メモリ使用量は増える。

あと、100MBの文字列を作るときにStringBuilder使ったんだけど、
st1 = sb.ToString();
だとメモリ使用量は増えないのね(sbはStringBuilder)