I'd a look at the 2.0 TODO List and I wanted to share this with you on "multilang tied to versioning"(revisions/workflow) :
Disclaimer : I don't offer to help coding. This is only easy claiming. "It is easy to say"

Today an xyz content is in a column in the xyz table, or sort of, isn't it ? (I haven't looked at the code myself)
If there were another column with a version/revision number, it could be easy to fetch any version, including the latest and the previous one ? Moreover, if there were another column for "language tag" (en, fr, ru, it, se, de, es...), it could be easy to fetch any language version (whatever the number of languages) ?
Call them tied if you want. The implementation pattern is the same but the two features remain independant of each other, don't they ?
I think this is a strong point to NOT implement multilang with a defined number of multiple columns (content_en, content_fr...) but with multiple rows like versioning.
And this may help on search with multilang : probably same as search monolang with or without filtering on the "language tag" column. The number of languages is free : 1, 11, 111...

BTW : may be approval could be another column, approved level : editors produce level 1 content, first reviewers upgrade them to 2 (or not), master reviewer upgrade them to 3 (or downgrade) and the live broadcasting engine only selects level 3 content. Of course, it is just an idea, it could be more fine grained.
Hope this helps. I'm sure I reinventing the wheel and some other GPLv2 software may have such code already.
Have fun designing and implementing.
Pierre M.