StringBuilder.toString() и String.<init>(StringBuilder) в IBM JRE делают разные вещи. Очень разные. Во втором случае копирования массива char'ов не происходит. Правда, узнать это можно только почитав код.