Unless we start putting `return` with no arguments everywhere, something is always returned, so I don't see why the extra stack allocation for `result` would have any performance implication. It might even be able to keep result in a register if it's a pointer (which would be a lot of cases).