RIO converts the languageTag toLowerCase: see
While RFC 5646 = BCP 47 (which obsoletes RFC 3066) demands that tags should be treated case-insensitively, it also recommends: "consistent formatting and presentation of language tags will aid users. The format of subtags in the registry is RECOMMENDED as the form to use in language tags. This format generally corresponds to the common conventions for the various ISO standards from which the subtags are derived." (and the format is NOT all lowercase).
The RFC describes a case normalization algorithm: "An implementation can reproduce this format without accessing the registry as follows...".
I posted a similar request for RDF::Trine::Node::Literal, and implemented such normalization algorithm there (in Perl):
Gregg Williams (the author of RDF::Trine) agreed this normalization is better than lowercasing.
(Not sure which is the correct component: this is in the commno part of RIO)