I would explain my reasoning about using RFC3066 rather than ISO639-2/B.
I would say that it could be wrong, it is just my tought and i would share
it with you in order to go beyond the technical point of view of the
engineer (vs librarian).

Some facts :
- RFC3066 and the xml:lang attribute are the standard used in the internet
- RFC3066 englobe ISO639
- ISO639-2/B don't share the same 2 letters of ISO639-1 (this is the reason
of the creation of ISO639-2/T)
- ISO639-2 is himself confusing (you said iso639-2 ? wich one, /B or /T ???)

Rational :
- As RFC3066 is widely used around the world - and more, widely understand -
i think that the spread of MODS (in and beyond the librarian community) will
be easier and better if MODS use RFC3066.

- MODS could use 2 (or more attributes) to describe languages, but it could
be confusing, and it is not in the way of the simplicity.

- Of course ISO639-2 is more granular than ISO639-1, but not enough than SIL
So ISO639-2 is not THE solution, and RFC3066 allow extensibility with "x-"

- MODS as all XML languages, is used for exchange data between computers.
So MODS will not be commonly read by humans and the informations that it
carry, will (should) be displayed in natural language to end users (in OPAC
for example).
So if the language attribute is call xml:lang, or lang or anything else,
it's contant is for example "fra", "fr" or "fre", the MODS users will
finally read "french".
Even if theses users are librarian, professionals, readers, adult, children

So i don't say that i would compel librarians to use RFC3066 in MARC records
[obviously it would be stupid], but i really think that MODS should use the
xml:lang attribute with RFC3066 values.

Ultimately, i hope that the librarian community will take in RFC3066 - in
the sake of simplicity and opening.


PS: i hope that i was clear and not to "rude", english is not my native