По дефолту функиция getCharBoundaries не может получить координаты символа который не попадает в размеры текстового поля. Казалось бы TextFieldAutoSize должен избавить от такой проблемы, но он не спасает.

Видимо он срабатывает на выставление размеров текстового поля после того как мы пытаемся получить размеры символа, т.е. гдето после отрисовки. Вот такая вот забавная штука. Убил несколько часов на выяснение такой особенности, вот делюсь, может кому пригодится.
Видимое решение проблемы - выставить достаточный размер TextField при создании и поставить TextFieldAutoSize.

Код AS3:
var t : TextField = new TextField();
t.multiline = true;
t.wordWrap = true;
t.width = 200;
//t.height = 1000;
t.autoSize = TextFieldAutoSize.LEFT;
addChild(t);
t.htmlText = "<p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p>";
trace("text |"+t.text+"|");
trace("htmltext |"+t.htmlText+"|");
for (var i :int = 0; i < t.text.length; i++) {
trace("char:|"+t.text.substr(i,1)+"|"+i+" "+t.getCharBoundaries(i));
}

Код:
..skip..
char:|a|10 (x=2, y=77, w=5, h=15)
char:|
|11 null
char:|a|12 (x=2, y=92, w=5, h=15)
char:|
|13 null
char:|a|14 null
char:|
|15 null
..skip..