iftop uses the VT100 "Special Graphics" alternate character set mode to display these box-drawing characters – it doesn't use plain Unicode symbols. (Technically ncurses manages the screen and all drawing, but iftop seems to be specifically asking for ACS characters, so even if $NCURSES_NO_UTF8_ACS is active it still doesn't force UTF-8 usage.)
The way it works is that \e(0 switches to the alternate characters; ordinary ASCII letters like qwqvqk are drawn as symbols like └─┬─┴─┐, and finally \e(B switches back to normal characters.
But I don't know why this problem would affect only some graphics, as normally iftop prints the entire line at once – there doesn't seem anything that would force the terminal to switch back to ASCII mid-way through. It might be caused by whatever ncurses and/or iftop version is used on the server.
(When you use tmux/Mosh/Screen, they act as terminal emulators on their own and internally translate ACS to Unicode when receiving data from the program, so Terminal.app receives a "cleaned up" version of what iftop tried to send, smoothing out the impedance mismatch.)