проблема в глюках самого флеша. Если нижележащий код попробовать проверить на ошибки из АС-файлов, компилятор выдаст ошибку. Если же его просто откомпилить из фла-файла - все прекрасно работает. Это первое. Второе, если объекты классов а:А и ь:Ь объявить как Object, то ошибок никаких выдавать не будет. И код будет работать. Хотя с точки зрения ООП это не правильно - объявлены не те типы данных. Может в АС3 будет работать, как положено.
АС2 конечно покруче в разы, чем АС1, но ему еще расти и расти.

Код:
class A
{
public var a:String = "AAAAAAA";
public var b:B;
public function A()
{
b = new B();
b.a = this;
b.tracer();
}
public function tracer():Void
{
trace("A");
}
}
class B
{
public var b:String = "BBBBBB";
public var a:A;
public function B(){}
public function tracer():Void
{
trace("B.a.a "+a.a);
a.tracer();
}
}
var a:A = new A();