I don't know anything about right-to-left text flow,
but it seems to me that moveLeft: and moveRight should
have the same behaviour on both left->right and
right->left text because left is a literal direction,
corresponding to the left and right arrow keys,
i don't think that these should be affected by text
direction
where moveForward: and moveBackward: are non-literal
directions, which should be affected
i notice slight differences in the documentation
-moveRight: should be placed at the right end of the
former selection.
-moveForward: should be place at the end of the former
selection.
otoh, i'm not sure if what you describe here is a
difference of behaviour, or a different implementation
required to achieve the same behaviour under both
left->right and right->left, if you could clarify that
a little