In ControlLogix, there are two independent processors -- a logic solver and an I/O scanner. With I/O scanning running independent of logic, it is possible that the same input address will solve differently if used in two different places in the logic.
In 99% of the instances, this doesn't make a difference to anything. And with the trend in more object-based programming (UDTs & AOIs), it's common practice to only use any real-world address only once, mapping it into or out of an AOI, and then using internal registers in the remainder of the logic.
Because analogs can change in mid-scan, even in some cases mid-instruction, the CPS variant of COP was created, to ensure that the values at the end of an array of data doesn't change from what it was when the copy started while it is being processed. Again, it's rare that this would make a difference, but it can happen.
Of course, communication between PLCs or HMIs was always asynchronous to scan, and so the same thing sometimes would happen that a bit set by the HMI would evaluate differently on two different rungs in the same scan. That bit a few people a few times, but like I/O being asynchronous to scan, it didn't happen all that often.
IMO, people have made more of a deal about it than it really is, insisting that all I/O be mapped data to internal registers, even if the program only every uses an input in one place in the code.