En effet selectionStart, doit-être supérieur à selectionEnd et le caret se met à le fin de la sélection.
A noter que lorsque l'on fait une sélection avec SHIFT+flêche de la droite vers la gauche ou avec la souris, le caret est devant. Je voudrais reproduire ce comportement, mais après une sélection faite par le code cité plus haut.