hm ich kann mir es nicht vorstellen 
Woran liegt dann der Fehler??
Hat zwar nur indirekt was mit dem Thema zu tun, aber naja. Das geht weil:
Man eine Variable auch mithilfe der selben Variable neu definieren kann.
Nach deiner Theorie würde das
new test = 20;
test = test + 5;
printf("%d", test);
5 ausgeben, oder garnicht funktionieren (wie auch immer)
In Wirklichkeit gibt es aber 25 aus.
Bei einem format ist es nicht anders. Bsp:
new test[20];
format(test, sizeof(test), "123");
format(test, sizeof(test), "%s und 456", test);
printf("%s", test);
Gib