@DavidCarlisle, thank you.
I am trying to figure out how \chardef works. In particular, whether it behaves like \newdimen when the same name is assigned a value, creating new register instead of reusing old one.
But after examining what \show prints when used on a \chardef name, I now know that it's not a register. I wonder if \chardef is a macro and something like
\chardef\testChar"54
\chardef\testChar"55
is akin to
\def\testMacro{T}
\def\testMacro{U}