Hi Pelle.... Like you I use the API's unicode functions, not those in C and have had no problems at all with it.
I think the big problem with Unicode support is that it's constantly changing and almost impossible to keep up with. If they would settle on one standard (I'd recommend UTF-8) and develop it fully things would get a lot easier than having this huge proliferation of standards that are obviously implemented differently from one platform to the next. This was supposed to enable better interchange... I think it's made it worse.
Ansi, OEM, utf-8, utf-16le utf-16be, utf-32le, utf-32be... how many code pages? Ridiculous.
Of course the problem is that (as we all know) if you develop one way of doing things then make a leaps and bounds improvement, you can never change entirely over to the new way of doing it... you end up supporting both methods whether you want to or not.
I wish they could standardize a universal character set (64bits if need be) and implement it into utf-8's extensible character architecture. Build all future compilers and OSs to be compatible with this one standard... life gets a lot easer!