As far as I'm aware, there's nothing in the spec that prohibits extensions to the set of fields, provided they use the required fields in their required way.
Of course, you run the risk that you end up with de-facto standards and everyone having to implement one implementation's extensions (oh, hi WebKit-prefixed properties!).
> there's nothing in the spec that prohibits extensions to the set of fields
Correct. But since it has all this "JSON-LD" stuff baked in, you need to also carefully define and publish the extra fields.
When I use the hypothes.is extension, I see queries in my browser's developer console that do not look anything at all like they are querying annotation collections as defined in the spec.
The data returned from these queries is close to the spec but includes many fields that aren't in it. These extra fields seem to be conveying important information for their application.
Edit: I ran one of their annotations through the W3C tests. Five failed tests. Including one of the most important fields:
This is why I said I'm not confident they are actually using it.