Explanation
The reason 23 is output instead of 33 is because there are actually 2 Kappa variables. One of the Kappa variables starts with a K (U+004B) however the other Kappa starts with a Kelvin K (U+212A). Even though they are different characters, the font renders them both in the same way.
Javascript Variables
Javascript variables can contain more than just ASCII characters. This site gives an explanation on the allowed characters:
An identifier must start with $, _, or any character in the Unicode
categories “Uppercase letter (Lu)”, “Lowercase letter (Ll)”,
“Titlecase letter (Lt)”, “Modifier letter (Lm)”, “Other letter (Lo)”,
or “Letter number (Nl)”.
The rest of the string can contain the same characters, plus any
U+200C zero width non-joiner characters, U+200D zero width joiner
characters, and characters in the Unicode categories “Non-spacing mark
(Mn)”, “Spacing combining mark (Mc)”, “Decimal digit number (Nd)”, or
“Connector punctuation (Pc)”.
Javascript only looks at the character codes in the identifier, not at how the identifier is rendered. That's why these 2 variables are considered different by Javascript.
[ ...'Kappa' ].map(char => char.codePointAt(0)) // [8490, 97, 112, 112, 97]