Just a followup to this. It's an artifact of the debugger, not something that happens every time. In my simplified example above, I get three characters with the debugger open. With it closed I only get one.
Something in the debugger is evaluating this calc ( but not others ) just on opening the debugger window.
Thank you for your post.
This problem has been reported previously. From the notes, it appears a buffer overrun occurs when repeating a script debug several times on a Let function where a local variable is used alongside a global variable (in your case, two global variables) with both Script Debugger and Data Viewer opened.
I have attached your post to the original case. When there is an update, I will let you know.