You're right, thinking more it could be done with
a diff that each user
individually patches.
Of course this would make distributing binary packages difficult (the
language data is compiled into a binary representation before used).
Although a binary diff could be done.
But then, when was the last time an end-user had to apply a binary diff
to their free software? Personally I don't consider this reasonable or
maintainable for a large number of language pairs. Which was my original
point.
You can distribute the binary representation under GFDL. You would
need a plain text version as well, to satisfy the license, but there's
nothing stopping you having two versions of the text, one for the
benefit of the user (and the lawyers) and one for the benefit of the
software.