And what should be expected in my example (reply #5) in lines 8 and 9 (both operands are variables)?
The answer to that is simple: the lvalue determines the expected and _required_ type of the rvalue. That's it. no ifs, no buts, no parse it from middle to the top or any other "creative" hallucination.
My point is: when you evaluate equation, types of operators must be compatible and their order doesn't matter.
That's as incorrect as claiming that 1 + 1 = 73. order _matters_. expressions are parsed left to right and associations are made based on operator precedence.
The error message FPC outputs in the example I provided is strictly speaking incorrect but, at least it figured out something is wrong and said something (incorrect) to that effect.
ETA:An improvement would be "illegal expression" (which the compiler often uses and, in this case, at least wouldn't be wrong.)