combining elements is not enough. A fundamental aspect of compositionality in human language is that it is productive. We do not just reuse a fixed set of combinations; we generate new ones, effortlessly.
I think this is a great take. And it has a nice implication against language purism:
If compositionality demands the gen of new elements, Language* demands compositionality, and any language* requires Language, then any language requires the gen of new elements. And yet purism is all about not using new elements - no neologisms, no borrowings, just take the language vocab "as is" and deal with it.
In other words, applying purism to a language means to not use said language. Language purists are thus fighting against the very thing they claim to defend.
*capital ⟨L⟩ for the human faculty; minuscule ⟨l⟩ for specific usages of it (like Arabic, Breton, Cherokee, etc.)
Back on non-human primates: I mentioned this in another thread, but IMO "we" (people in general) should stop seeing "is this language?" as a binary matter, and more like a gradient: "how close is this to language?". What they're doing is still not on the same level as we do, but it's already beyond non-linguistic communication.