If you used just JSON for ActivityPub, then your IDs (if they are URLs) could have custom resolution rules. But if it's JSON-LD, then these are IDs which are opaque references. So, if you are using something like a DID where, to resolve it you have to extract arbitrary-positioned components of the ID such as URL query parameters, you now have to, outside of any existing spec, define rules for the inclusion and ordering of query parameters inside the URL.
You can have the same problem with HTTP URLs because they also have query parameters, but HTTP URLs always have a path component so you always have an unambiguous way to resolve an object. So you just use paths and not a query string. With DIDs many of them don't have a path, they only have query string parameters.
so I gave up and just said "AP DID URLs MUST have a both a service and a relativeRef query parameter (since they are allowed on every DID method), in that order, and no path."