This leak was introduced when I fixed cnv_node_to_numnode not to free its argument when it was a string that had zero references.
Even though it made these callers more complex, I still think the change to cnv_node_to_numnode is correct.
The code base is simpler if cvn_node_to_numnode never frees its argument.