I guess the answer is in the [forum post the Stefan linked to](https://forum.nim-lang.org/t/1202):
> Because the size of an int/float is known at compile-time, the compiler can > optimize the FlowVar away and instead tell the spawned proc where to write > the result. This is not possible for string.
