Strange situation, but i'm afraid flash it's quite correct about what it returns, and in it's point of view, the coordinates are local

Let me explain what you do.
1. you create a new sprite, and since it's an empty sprite, it will start from 0,0 with a 0 x 0 width x height.
2. inside that sprite, starting from 100, 100, you draw a square. Flash consider that your sprite is starting from 0, 0 and you only draw the rectangle inside it. It calculates the width and height based on the width/height of the objects inside the sprite, but the coordinates are calculated from 0, 0, even if it doesn't consider the empty space as being part of the sprite.
So instead of creating the rectangle at 100, 100, create it at 0,0
and then move the square to 100, 100.
square.graphics.drawRect(0, 0, 100, 100);
square.x = 100; square.y = 100;
- square.graphics.drawRect(0, 0, 100, 100);
- square.x = 100; square.y = 100;
“True mastery transcede any particular art. It stems from mastery of oneself - the ability, developed throgh self-discipline, to be calm, fully aware, and complety in tune with oneself and the surroundings. Then, and only then, can a person know himself. ”