As for making the kernel enforce a single character set for the filesystem: No. No. No. Put another way: No.
http://yarchive.net/comp/linux/utf8.html
From Al Viro:
Bullshit. It has _nothing_ to characters, wide or not. For system filenames
are opaque. The only things that have special meanings are:
octet 0x2f ('/') splits the pathname into components
"." as a component has a special meaning
".." as a component has a special meaning.
That's it. The rest is never interpreted by the kernel.