とりあえず、Gecko 系に限った話。
>>0
> 開始タグのところをポイントして次に終了タグ直前の文字をポイントすると、自動的に選択状態になる
まず基本的な話として、DOM2 Range に従えば 2 通りの考え方がある。
・div 要素ノードの 0 番から 1 番まで。
・div 要素ノードの内容であるテキストノードの 0 番目から 46 番目まで。
Range オブジェクトを作って、setStart と setEnd で範囲を指定する。この数え方は XPointer にも応用できるので、覚えておいて損はない。
もっとも、今回の件に限っては、以下のように selectNodeContents を使った方が楽。範囲を確定させた Range オブジェクトを Selection オブジェクトに追加すれば、表示上も選択状態になる。
var n = document.getElementsByTagName ('div')[0];
var r = document.createRange ();
var s = getSelection ();
r.selectNodeContents (n);
s.addRange (range);
IE/WE に関してはパス。