Terminology - the reason for symbol reuse in programming languages
The main reason is very mundane. At the time C was designed, and
notations for many things, we did not have any form of graphics, or
very seldom (like one graphic screen for the whole university, even in major places). Actually, the main output devices were the teletype or the line-printer, with a standardized and
limited character set. Even the alphanumeric screen came later for most. No windows or mouse excepts in rare labs (Xerox).q

So that was a general constraint for everyone. For writing papers, we
could add hand-written symbols in blank spaces left by the typist. But
for more mechanized works such as programs listing (i.e. the printed
text of programs) and for execution result, we had to do with what
characters were available on the printing device.

Another problem was that increasing the number of symbols was limited
by the standard encoding in seven or eight bits. Memory was very
costly. The syntax of Fortran (the version of that time) was influenced by the format of punched cards.

Then there is a tradition. Mathematicians have been reusing symbols too. And so does natural language. We get diversity by composing them, or using context. And this was fortunate for Gutenberg, and made writing generally much easier. Compare Chinese and Latin writing.

Regarding how this could be called, I must say there is no word that
comes to my mind. Not even the feeling that there was a specific word
for that. I did quite a bit of theoretical and practical work on
programming language syntax and I do not remember this as an issue,
except as explained below.

Short of knowing what word you may look for, I can try to guess, and some
obvious candidates would be homonymy or homography. Or maybe polysemy.

A specific case, but which concerns more identifiers, is scoping
rules. In some languages they apply also to operators.

So far, that is the best I can contribute to this onomasiological issue.