> Lisp, Forth and friends do perfectly well without having to consult precedence tables
It helps that they have "alien" syntaxes (prefix or postfix but not infix). Smalltalk is also a language which did away with precedence almost entirely: it has a strict right-to-left evaluation model, and only three precedence levels[0]: unary messages (aSubject aMessage), binary messages (aValue anOtherValue) and keyword messages (aSubject aMessage: aValue) but because it has "infix operators" the effect is much weirder.
[0] or possibly a fourth, the cascading `;` operator is not a message, and can become really, really weird when used with different message types e.g.
7 + 4 squared; factorial; yourself.
binds like this:
7 (+ (4 squared)); factorial; yourself.
so it computes 4 squared, adds it to 7, then computes the factorial
of 7 and finally returns 7.