I wonder why there is not a:

    "store destX back"   
    interpreterProxy storeInteger: BBDestXIndex ofObject: bitBltOop withValue: destX.

at the end of primitiveDisplayString (that is, only in case of success).

That would properly advance the destX, and would avoid the guard in StrikeFont>>displayString:on:from:to:at:kern:

Or did I miss something?