* There is no way to update your context without breaking your JSON-LD-aware consumers (one term in your JSON can't link to two IRIs, so you can have it expand to the new term or the old one, not both)
* There is no way to "expand" values to IRIs, the context only does it for keys, so if your JSON contains `{"personRole": "manager"}` you can 't expand it to `{"http://myschema.org/personRole": "http://myschema.org/manager"}`, you actually need that second IRI in your JSON
Really it's a great way to represent linked data, but there were plenty of options already. I wish it bridged the gap with JSON APIs instead of merely looking like JSON.
I agree that there probably is no value in using JSON-LD for an application that was built without LD in mind.
Regarding your last statement about APIs. JSON API (https://jsonapi.org/) looks interesting. Have you worked with that?
I didn't know about JSON:API, thanks for the pointer. It seems to tighten the JSON responses a bit, but doesn't address linking or extending vocabularies though.
I have not used JSON API yet but it is cool to see the "follow your nose" approach be applied to REST APIs.