If you're interested in how ASCII ended up that way, Tom Jennings wrote an excellent history: https://www.sensitiveresearch.com/Archive/CharCodeHist/index...
Of course, larger character sets that include ASCII as a subset do keep adding symbols: https://www.unicode.org/alloc/Pipeline.html and some programming languages do use non-ASCII symbols: https://docs.raku.org/language/operators
______
⁂ Smalltalk's continued use of ASCII-1963, among other things so that it could use ← as the assignment operator, is the reason that OO programmers got in the habit of using CamelCase, and are still doing so today, despite using a character set containing the underscore, and, typically, programming languages in which underscores are valid characters