Hi!
The encoding utf-8-hfs is defined in lisp, in international/ucs-normalize.el. However, by glancing at the code, I can't see anything obvious that would trigger a redisplay (the code is relatively complex, though).
One thing that is unique about the utf-8-hfs encoding is that is sets the `decomposed-characters' coding system property. (See my and Eli:s commits around 2015-12-23). This ensures that editing and completion of composed characters like "åäö" work properly. However, looking at the code in src/dired.c doesn't reveal anything obvious either. If you remove the code that sets this property (in ucs-normalize.el) you can check if this causes the redisplays.
-- Anders