Yeah, Lua doesn't know anything about unicode, all it's strings are stored as single byte characters. I'll see if I can think up something, but can't guarantee it.
Nope, dos seems to be okay on unicode filenames. I don't know if you could get the unicode through the io.open() using a bytewise string, but it's worth a shot. That's an annoying behavior.
I originally thought the libraries we're a good Idea, but I could see it decending into Windows DLL style hell, so I think I'll say goodbye to them. Heres a little, more compact update on this script: