Situation: i have at least 2 languages in localization and one of them is turned off. In theory when editing products, all language tabs should be in place (for setting info for all languages present in localization despite of lang status that is logical), but this happens not all the time. Language data for product tab is taken from \admin\model\localisation\language.php func: getLanguages($data = array()),
product page doesnt send any data, just calls the func, so directive $language_data = $this->cache->get('language'); is fired. But data in cache not always stored in right way: if in the beginning cache was absent and you open client page (not admin) then cache data stored with only one language and of course then if you open admin product page only that language that stored in cache is shown, in my case only one, but as i mentioned, i have two.
so the solution is to delete cache and load at first admin page or just make some changes to language.php .
I dont really understand why it is needed to take lang data for admin page from cache and not directly from config.