What's the theory behind the operator precedences of common operators?
There is really no theory behind it: operator precedence is a purely human construct.

The reason is that expressions are not linear blocks of text. They are trees. For example, you can represent any arithmetic in Reverse Polish Notation. In a tree, there is no ambiguity. An operator acts on its children, end of story.

Humans are good at reading things linearly, and bad at reading trees hierarchically. So, we write equations and expressions as linear sequences of characters, with rules for parsing, parentheses to imply the tree structure, and operator precedence rules to remove some of the "obvious" parentheses.

One could imagine a system in which 2+3*4 was (2+3)*4. Math works just as well in such a system, and the choice is totally arbitrary. It is simply not the arbitrary choice we happen to use.