When a certain language (we can call it language1) has been used in an entity's field or in a control center Table, and that language1 is removed from the Model's list of languages, language1 data is still retained and would need an update to the value for it to be removed.
The main problem here is the data integrity, the language is assumed deleted however upon retrieval of data, the presence of the value of a deleted language might cause potential issues on other services that rely on the supplied data.
When the cleanup is done programmatically it has the potential to produce unwanted Field Revision records for that certain field and also trigger Listeners. Not to mention the resource it would take from customer, partner, and inriver's side, ideally, the clean-up process could be taken over by a Control Center Job that would do it automatically in certain intervals, manual executions, and all of that running in the background.
Right now, this cleanup process can be done programmatically that utilizes REST API, appending and subsequently removing a period character at the end of a Field's existing language value.
The following tables utilize the Model's languages:
1. FieldType
2. LinkType
3. Category
4. CompletenessDefinition
5. CompletenessGroup
6. CompletenessRule
7. SpecificationCategory
8. SpecificationFieldType
9. EntityType
10. FieldSet
11. SpecificationFieldValue
12. Field