@wp,
I completely agree. In those cases I think parentheses should always be used to make the intentions clear instead of depending on precedence levels that may not be the expected ones.
A number of years ago, I needed to write an expression parser and faced all these "subtleties" and decided to make parentheses mandatory whenever operators of differing precedence level occurred consecutively. At first, it looked like a good idea but, it fairly quickly became obvious that many expressions would be parentheses ridden making thus making them harder to read and, that did not solve the problem of sequences of operators with equal precedence that yield different results depending on how they are grouped, e.g, the exponentiation example you posted.
I don't care to contradict extremely bright people such as C.A.R Hoare but, user intentions often vary from one user to another, measuring anything by how well user intentions are met sounds a bit "unreliable".