MusicBrainz does both. The language you set on the release level indicates only the language of the track listing, not of the lyrics. But if you set the language for a work it indicates the lyrics language.
Picard uses the language on the work for the %language%
tag, but it also provides the language on the release as a hidden tag %_releaselanguage%
. Picard before version 1.1 actually used the release language for the language tag, which was semantically wrong but in many cases provided the correct data. But it also often was just wrong