It sounds to me like the
PublishEmptyItems setting that was added in v7.2. By default that is set to false. What this means is if you have an item in your content tree that does not have an active version – even if there are children items under it and you have “Publish Subitems” selected, not only will it not publish that item, it will actually remove it and the children in your target database if it was previously there.
That part is apparently is by design. In previous versions, this wasn’t a choice and it would always publish empty items.
The actual bug is if you publish one or more empty items of a given language and no items actually get published, it will remove the respective language from /sitecore/System/Languages.
To work around it, turn the setting on:
<setting name="Publishing.PublishEmptyItems" value="true" />
src: 3 New Sitecore v7.2 Bugs You Need To Know About Before Go-Live