Нашел баг, а может и фичу, но очень уж странную.
При перетаскивании объекта target в установленных рамках при отжатии мыши target.mouseX, target.mouseY, stage.mouseX, stage.mouseY имеют значения в точке зажатия объекта для перетаскивания, а не в точке, где была мышь во время дропа. Без установки рамок - все ок.
Переместите квадрат так, чтобы он уперся в правый нижний угол своих границ движения, отожмите мышь правее и ниже, чтобы квадрат не съехал из правого нижнего угла. Затем зажимайте мышь в середине квадрата и отпускайте в различных точках экрана, но в секторе ниже и правей, чтобы квадрат не съезжал. Смотрите за значениями в аутпуте - они должны быть примерно одинаковы в различных точках отпускания мыши.

Код AS3:
var s:Sprite = new Sprite();
addChild(s);
s.graphics.beginFill(0);
s.graphics.drawRect(0, 0, 100, 100);
s.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownListener);
function mouseDownListener(e:MouseEvent):void
{
s.startDrag(false, new Rectangle(0, 0, 100, 100));
//s.startDrag(false, null); - все ок!
}
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpListener);
function mouseUpListener(e:MouseEvent):void
{
s.stopDrag();
trace(s.mouseX, s.mouseY);
trace(stage.mouseX, stage.mouseY, "\n");
}
UPD: если при дропе мышь в рамках движения объекта, то вроде тоже все ок.
Как же вытащить реальные координаты мыши во время дропа?