First, let's say you subclassed String or have a delegate. obj.prepend(str) will adjust obj
in place rather than create an all new String object (as str + obj would). This may be either desirable or critical, depending on what you're doing.
Second, prepend is a lot faster than using + in this case. As in, a simple prepend runs in a mere 1.9% of the time (in a benchmark I just ran). Why? Fewer new objects are being created. And that means easier and fewer GC runs too.
Update: I think there is something slightly bust since on 1.9.2 using + handily beats prepend on 1.9.3. But GC has changed a lot. I'll retest on RC1 rather than preview1 ;-)