DDA is heavily integrated with Unicode, we use it for very nearly everything to support translation.
Wide characters on the dungeon map though, that's rough. Haven't even considered doing that.
Btw, the main gotchas other than library integration in my experience are making sure all your character handling is wide enough (e.g. use a unsigned int for a single character instead of a char) and make sure you use unicode-aware methods for string manipulation, such as checking length etc.
Article needs a bit of an update, I don't recall any issues with point 5, 6 or 8.
We call setlocale multiple times at runtime to dynamically change selected language and it works fine.
We don't define XOPEN_SOURCE_EXTENDED and everything works great.
We use -Werror and -Wall and ncursesw with no issues. On the other hand, you actually have to use -lncursesw OR -lncurses, depending on the platform. Some platforms have decided to be helpful and make ncurses link against ncursesw without also aliasing ncursesw (Mac). Better systems (Linux) supply ncursesw5-config, which is invoked like pkg-config.
Most of the rest I agree with, though I wouldn't recommend cchar_t, seems really cumbersome.
The header file and library thing continues to be a pain, and getting things compiling on arbitrary systems (Windows and Mac) can be frustrating, no worse than gettext or SDL though.