This is actually a regression of introducing branches into AMOS and keeping the translations of contributed plugins in AMOS and not in the plugin's . Imagine the following use case:
1. A contributed plugin is uploaded into http://moodle.org/plugins and marked as "for Moodle 2.2"
2. The plugin strings are registered in AMOS on MOODLE_22_STABLE branch as expected
3. Translations of this module are correctly generated into a file in ZIP at http://download.moodle.org/langpack/2.2/ (so far so good)
4. But if that plugin is tested or deployed at 2.3 site, it will probably work. However, no translation is available as the strings are not registered at 2.3 branch in AMOS.
This is a pretty common use case as not every maintainer keeps their plugins up-to-date with every Moodle release.
The solution is pretty simple: all language packs for contributed plugins should be generated into their branch and to all higher branches unless there is an explicit version of the plugin available on that higher branch.