Now that Moodle 2.5 is out, let me throw some radical idea on the table. Multi-lang filter operation has improved a lot over the years. However, using it when more than 2-3 languages have to be supported or using it with wysiwyg editors is not trivial. The entries are error-prone and workabouts using <div> instead of <span> have been introduced to deal with HTML-coding restrictions, to mention a few issues.
Since all those strings are coming from user input and are stored in the database, what about storing each language string separately?
What I am proposing requires major changes to the database (a lot of new fields and some new tables) and a rework the multi-lang filter function (mostly simplification). However, I believe this approach could address all the currently known shortcomings.
The implementation I envision is to add an extra field parallel to any field that contains user-input which can be subject to multi-lang filtering. That new field will contain the language code. In most cases, these would need to go to a new table since we will have 1:N matching of the old record to multiple language records. If multi-filter is on, any form that collects teacher input would have a language popup-menu for the input language and that language (actually its code) would then be stored with provided texts.
People smarter than me can figure out whether it makes sense to have a single central table for all user-provided strings (at least those provided by teachers, presumably students work in a single language only) or whether to keep those extra tables as sibblings of the current tables.