Rich, is there any other term apart from dynamicProperties that would use the KVP delimiter?
Not that I am aware of. Although, as Tim pointed out, typeStatus might be an example of a nested array (though not shown in the example).
And I agree with your description of where we *ought* to be headed on this.
But the current reality is that there are terms in dwc that call for an array of values, and people will likely continue to have a need for such going forward. I personally would like to see some statement about "best practice" for delimiters (when needed) in the context of dwc, but I'm mostly indifferent as to whether this should be part of the standard, or simply an external recommended "best practice". Maybe not associated with individual terms, but as a general practice.
If not a statement about best practice, at the very least I think there should be consistency in the documentation, and let people glean what they will from that. I don't see any value in maintaining deliberate inconsistency in the documentation as an overt statement that "do whatever is best for your implementation".
In keeping with the original issue as John posted it (i.e., explicitly separating the question of whether multiple delimited values are a good or bad thing), I will maintain that I support consistency in documentation for the terms that already exist, and that I support the pipe (|) -- without spaces -- as the primary delimiter used in the documentation & examples. Moreover, in cases where a secondary delimiter is useful (even if only for dynamicProperties), my vote for the secondary delimiter is the tilde.
Aloha, Rich