¿No hay forma de crear una selección inversa (es decir, de derecha a izquierda) desde JavaScript?

Estoy tratando de crear una selección que vaya de derecha a izquierda en el texto, pero parece que la API de DOM Range no me deja hacer eso. (No veo nada sobre esto en la especificación, no es que lo haya leído detenidamente, pero todas las implementaciones parecen estar de acuerdo en no admitirlo).

Por ejemplo, dado un documento muy mínimo:

data:text/html,<div> this is a test </div>

Puedo usar este script para habilitar la edición y crear una selección normal (por ejemplo, desde un bookmarklet, pero se agrega un ajuste de línea para mayor claridad):

javascript:document.designMode='on';
var r=document.createRange(),d=document.getElementsByTagName('div')[0]; 
r.setStart(d.firstChild, 3); 
r.setEnd(d.firstChild, 7); 
window.getSelection().addRange(r); void(0);

Sin embargo, si cambio 3 y 7 no se crea ninguna selección.

¿Sabe alguien una forma de hacer ésto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta