D1なら文字列もmutableだから元の文字列が書きかえられてるのかも
代入といってもコピーされるわけじゃないから

char[] b = "test";
char[] a = b;
b[1] = '*';
writefln(a); // t*st