Зачем prepared statements? Почему не экранирование?
Потому что экранирование можно забыть (а если что-то возможно, то это рано или поздно произойдёт). 
С prepared statements такой проблемы нет.
PS Забудьте про mysql_real_escape_string, его больше нет. И вообще всех функций mysql_* больше нет.
Вручную легко что-нибудь упустить. Заодно Prepared Statement находится в прекомпилированном состоянии (как минимум в java) - это уменьшает время вызова.