I wrote here:
The thing is not that ActivityPub is a bad basis for creating an application that federates. The problem is that ActivityPub is a bad basis for two independent people to create applications that federate. I also allude to it here, one could take the outbox part of ActivityPub and build something that entirely works with static site generators. Unfortunately, this will not interoperate with the current inbox based Fediverse.
For me the goal needs to be “Create a protocol. Two independent implementations of it, will interoperate”.
The second thing is: I’m not in a position to judge what the original ActivityPub vision it. I don’t think it’s written down somewhere.