According to http://www.javalobby.org/articles/activeobjects/ , ActiveObjects automatically avoids this problem by examining the call stack:
"We can use this to check for the defined implementation one step up on the stack. If we find that it initiated the method call, we'll skip the re-invocation of the defined implementation and actually execute the method call normally. Thus, any calls to an entity from its defined implementation will skip any implementation logic, avoiding recursion."