Mario and Tim are both right. On the one hand, caching a moving morph in the most obvious manner prevents you from seeing the morph change while you are holding it. This would make, for example, the core sampler much less useful. On the other hand, many complex morphs, such as outliners, are unlikely to change as they are being dragged. Fortunately, the architecture was set up to allow a cached morph representation to be flushed if the morph actually does change while it is being dragged. This enables the best of both worlds. The trick is that damage reports are passed up the morph hierarchy. If HandMorph is in the chain, it can update any cache it happens to have.
Lars had suggested doing this sort of caching but performance to a local X server was fast enough that we didn't think it necessary.
The multiuser aspects of Kansas have insignificant costs if you are running with only one user.