>You allow a missing outbox in your FEP although it's required by AP.
Outbox is required by AP, but inbox is sufficient to detect an actor. And sometimes outbox property is not present, so checking for it in addition to inbox would make the algorithm less reliable.
>For duck typing, an "Actor" is a thing that performs an Activity: it's the object (in an RDF sense) of some Activity actor relationship.
This definition is not useful, because Activity actor is not the only place where actors can be found (an example I provide in the FEP is Update activity where object might be an actor).