Hi Lyndon,
As far as the Association Object, I understand from the definition that this is serving a different purpose, however a separate object (different from the Association Object) could still have some advantage compared to using an existing field in the Session object.
You are right that using a separate object to carry the *short* call ID was a possibility. And we did consider it. However, the motivation for introducing a new object was not strong - it seems to be limited to handling broken implementations, and we shouldn't let that particular tail wag the dog.
In retrospect, perhaps we should not have included the description of how broken implementations might behave. After all, we clearly don't want to describe every possible broken implementation.
Adrian