Coming from a perspective of a designer who specialized in typography, I claim that the fact that humanity still uses cuneiform also known as "universal mathematical language" is one of those cases where tradition defeats rationalization hands down. Pseudo-code is a tribute to this tradition of obscure symbolism, sloppy writing, legible only to the writer but not the readers, comfortable only insofar as to impose less restrictions on the writer, while disadvantaging the readers.
Computer scientists being, technically, a sub-division of mathematicians, will fight tooth and nail to keep the things just as they "had always been". Just as ancient Babylonians, who removed zeros from multiple digit numbers for conciseness! (actually, they must've been just lazy to inscribe those pesky zeros into their clay tablets). Pseudo-code is a modern form of this cuneiform.
My personal experience, as a programmer, is along these lines: most often the subject of pseudo-code comes up during job interviews, where I'm asked to present some algorithm in pseudo-code. Just for kicks, I tried to represent a Prolog or an ML program in make-believe Prolog or make-believe ML. You know what: those people asking for pseudo-code actually wanted Java. Except that Java is a bad programming language, where you cannot avoid writing a lot of inessential details. So, they wanted Java, but with type declarations removed and literals for initializing collections. Probably, if they ever saw Python, their need for pseudo-code would have been eliminated.
History of the problem
Perhaps to better understand the phenomenon, let's look into the etymology of the word. Interestingly enough we find that:
Compile (verb) — The process of producing from pseudo-code a specific routine for a particular problem ...
-- Grace Hopper's Programmer's Glossary, 1954
this is probably the first mention that I could find
So, actually, in the very early days of programming pseudo-code used to mean any high-level programming language, while code was the shorthand for machine-code! The rationale for using pseudo-code thus is clear: use a high-level language to allow higher level of abstraction. It was intended to be compiled, without it, it is gibberish.
Join the resistance
Gerald Jay Sussman, the author of SICP, one of the best books on programming, had also written a book on physics. An example page shows that he chose to use Scheme to represent formulas. To quote this book:
The mathematical notation is in one-to-one correspondence with the expressions of the computer language Scheme [21]. Scheme is based on the λ-calculus [12] and directly supports the manipulation of functions. We augment Scheme with symbolic, numerical, and generic features to support our applications. [...] The correspondence between the mathematical notation and Scheme requires that mathematical expressions be unambiguous and self-contained. Scheme provides immediate feedback in verification of mathematical deductions, and facilitates the exploration of the behavior of systems.
Also:
For very complicated expressions the prefix notation of Scheme is often better, but simplification is almost always useful.
In conclusion: I would discourage the use of pseudo-code as it is used today (say, in LaTeX packages). It is almost never representative of the actual tools the programmer will have to implement the algorithm. It is conducive to a particular kind of programming and almost entirely ignores a lot of other valid approaches. There are better tools, which offer automatic verification, generation of example problems and solutions, convenient editing environments, better typography, which altogether helps sharing understanding of the problem.