Sorry it took me a long time to reply.
The string returned by the method is converted to an NPvar object, and the problem is that memory is allocated as a part of that conversion. For some reason, that memory is not cleaned up when the object wrapping the string gets its refcount reduced when the Javascript garbage collects it (assuming that it does).
If you want to look deeper into the issue (I don't have the capacity to look into it myself right now), the code you should be looking at is in scriptable.h (invoking the method and returning the string) and variants.cpp (converting COM variants to NPvars). If you send me a patch, I'll merge it to the project.
Leeor.