Появление сообщений в чате реализировано через $compile.
Зачем? Намного практичнее использовать старый добрый ngRepeat. Так можно потом виртуальные скролы прикрутить какие-нибудь и т.д. Разделение ответственности короче.
А то что вы описываете это jquery-стайл.
Для защиты от XSS просто используйте $sanitize.