個人的なJSON-LDに対する認識は概ねこれだけど、ことActivity Streamsの場合は下手に人間による読み書きのしやすさを追求して拡張コンテクストが乱立することになってしまったのは失敗だと思っている
恐らくJSON-LDは送受信者の間で固定されたコンテクストを共有した上でcompacted formをplain JSON的に処理することは想定しているけど、送信者が好き勝手にコンテクストを定義するユースケースはあまり想定されていないのではないかと思っている。
例えばVC Data IntegrityのContext Validationアルゴリズムでは、文書のコンテクストを自前の既知のコンテクストと比較して、一致しなければcompactionをかけるかあるいは単にエラーを吐くかするといった処理が定義されている(<https://www.w3.org/TR/2024/CRD-vc-data-integrity-20241015/#context-validation>)
Schema.orgのように皆が同じコンテクストを共有している場合はplain JSONのノリで読み書きできて便利ですねで済むかも知れないけど、現状のFediverseのように各参加者が好き勝手にコンテクストを定義しているような状況では、plain JSON的な処理だけではある拡張タームがどのような意味を持つか判定できない。
Compactionをかければplain JSONとして見てもある程度曖昧性のない表現になるけど、これは初めからアドホックなコンテクストを導入せずexpanded formで表現していれば不要だったはずのオーバーヘッドでしかない。Expanded formのデメリットといえば人間にとって書きづらいことくらいだろうけど、現実の通信でJSONを手書きする必要なんてないわけで