Interestingly upper() works but lower() doesn't. Tested with some Scandinavian letters but not with other scripts.
To reproduce:
IronPython 2.7.3 (2.7.0.40) on .NET 4.0.30319.269 (32-bit)
Type "help", "copyright", "credits" or "license" for more information.
a = u'\xe4' # Character 'ä'
A = a.upper()
A
u'\xc4' # Correctly produces 'Ä'
a.islower()
True
A.islower()
False
A.lower()
u'\xc4' # Wrong! Still 'Ä'
A.lower() == a
False
A.lower() == A
True