There will be a trade-off for the additional memory usage as the instructions CMP and CPT execute, for it to hold intermediate values during the computation of the expressions. More parentheses, more memory usage. However, this memory usage is reclaimed after each instruction completes.
Scan times for CMP and CPT are always longer than doing the equivalent math(s) in cascaded simple math(s) instructions. The reason being that the expressions are "parsed" before evaluation, to decide on the evalution order, even if there are no parentheses in the expressions.
Breaking the expressions into simple comparison and math(s) instructions will dictate the order of evaluation.
So, I just did an unscientific test. I created a new project and added one line of code with four math instructions. ADD, MUL, DIV, ABS. Each using the result from the previous instruction. I then copied and pasted until I had 1024 identical rungs. This "long" method program scan time was approximately 240-280 microseconds and used 948k of RAM.
I then created a whole new project where I used a CPT to perform those same four functions. Again, copy and paste to get 1024 rungs. The "short" method used 495k of RAM with a scan time of 80-90 microseconds.
In both cases I am measuring the program scan time, not the task scan time. There is no other logic or tasks.
Interestingly, the offline memory estimate for both was the same. The memory usage mentioned was online.
Like you said, the factors, including the math that you perform, the data type used, and the complexity of the expression all make a difference. I suspect I could generate another example where the results are closer or even flipped. But I have long held the belief that the CPT saves memory, but not scan time. In fact, I believed there might be a slight scan time penalty that would just about even out as the expression got more complex.
Again, totally unscientific. Just a workbench result.
OG
EDIT: Just did another example and the scan time results went the other way. However, memory usage was still nearly 1/2 using the compute.