Hi Ruben,
The reason for this is just to simplify reasoning about extensions, so a particular extension (defined in xAPI Profiles), with a particular ID (the URI key for the extension), can only be used in one of context, result, or activity definitions. So, for example, an extension with ID
http://example.org/extensions/omega in xAPI, generally, could be used in a few places:
{
...
}
(and, in addition to object, in all of the Activities in context activities). But if that extension is defined in xAPI Profiles, it can be used in context OR result OR any activity definition, and a similar extension in another location would need a new identifier.
You can still have as many extensions as you want in each of those. You can only have one instance of each extension in each extensions object, as an extension is defined by a unique key, but extensions are free to define themselves as, for example, arrays of multiple values. For example, this is a perfectly fine looking extensions object:
{
}
Let me know if I can elaborate more on any of the above.
Sincerely,
Russell