Думаю что это потому что this другой в момент вызова distributeReplays
Не уверен, но может так сработает:

Код:
function sendXML()
{
trace("in sendXML")
Socket.send(RequestXML);
Socket.onData = distributeReplays;
Socket.fooThis = this;
}
private function foo()
{
trace("in foo");
}
private function distributeReplays(replay)
{
trace("in distributeReplays");
this.fooThis.foo();
}