I think they are simply interpreting the test each time the compute block is execute. You have raised a very good point. It would be better yet to implement the compute block in ladder.
The CPT is implemented in A-B PLCs in ladder only, even in Logix5000 systems which can also use Function Block, Structured Text, and Sequential Function Chart programming languages. (In Structured Text you can simply make the assignment Destination := Expression.
The expression you can put into a CPT instruction can be as complex as you want, I've seen some horrendous expressions !
On one job I worked on, the client spec. gave the calculation for a specific part of the process, and I decided not to break it up for speed, but to enter it into a CPT expression exactly as written in the spec.
That was a lifesaver for me, because when the CPT incorrectly calculated the result and compromised the product, i simply did a PrtScrn of the instruction and handed it to the client for checking. A few minutes later, the client's engineer returned with the news that the expression was wrong in the spec., and they had to admit the error was on their part.
I would advocate the use of CPT for any calculation that needs more than 4 or 5 "standard" instructions, it is so much clearer to the observer what the math is doing.
I would also question the need to perform the calculations every scan? In the case I quoted above, the CPT was executed once every 1.5 hours, so the speed of execution was not an issue.