The snippet you report shows a mix of normal C++ behaviour and cling features:
The normal C++ behaviour is in that int(aa) does not do what you think. That is a (re-)declaration of the variable aa that you declared initially. In any other C++ context, you would get a compilation error → Compiler Explorer
The fact you see the value 0 assigned to aa (which makes it look like a re-definition of the same variable) is actually due to the fact that cling allows re-declaration of the same variable-name, but internally it is actually a different variable for the compiler. This is a feature quite important for interactive user sessions in C++.: