Сущности полезны в файлах исходного кода программы (в программах, которые выводят HTML). Многие стандарты кодирования говорят, что файлы должны быть в простом ASCII. За исключением, конечно, файлов, которые на самом деле содержат текстовое содержимое - например, .po файлы с переводами.
Если у вас длинный файл с несколькими не-ASCII-символами внутри, то очень легко сохранить файл в неправильной кодировке, не заметив, что ваши символы испорчены.
Еще одна веская причина для использования не-ASCII символов - похожие персонажи. Можете ли вы определить разницу между следующими двумя строками кода:
print "<title>" + pagename + " – " + sitename + "</title>";
print "<title>" + pagename + " - " + sitename + "</title>";
Но при использовании сущностей разница очевидна:
print "<title>" + pagename + " – " + sitename + "</title>";
print "<title>" + pagename + " - " + sitename + "</title>";
Но вне файлов с исходным кодом программы UTF-8, безусловно, является подходящим способом.