Hi Melanie,
These are all important questions. I was hoping somebody would chime in with the perfect solution. :^)
We should have good answers for OBO, but unfortunately we don't yet. We're making progress with our tools, but we don't have policies and best practises yet.
I'm sure what you are proposing would work. Since you asked for advice, this is what I think I would do if it were my project:
1. use ROBOT templates for all my terms, with the logic and (primary) English annotations
2. have another ROBOT template for each language, and use the language support in ROBOT template to specify "AL rdfs:label@fr", etc.
3. merge all of these into one versioned release file, duo.owl
4. when there are enough changes, make a new versioned release of duo.owl
Then I would try to help my users extract the information they want from the main release file. ROBOT remove/filter can select by language tag, and SPARQL is another good option. If that just isn't possible, I guess I would create language-specific versioned OWL files as "views", as you proposed.
In my opinion, the biggest missing piece is multi-language support in ontology browsers. That's not something that OBO controls.
Whatever you choose. I'm happy to help you with your Makefile.
James