Мне лично нравится второй способ - url короче. Но на самом деле все можно сделать красиво на apache/nginx, которые будут преобразовывать один тип урлов в другой, более того, даже поддерживать оба типа и фронтенд часть даже не будет знать, какой сейчас бекенд (то есть php или там вообще все на ассемблере переписано)
Оценивать нагрузку, не видя кода - сложно, но если считать, что код эквивалентный, то, скорее всего, разницы никакой не будет, два файла или пять. Тут я придерживаюсь стратегии, что на одну сущность должна быть одна сущность. Если рассчитывать, что управление комментариями (добавление/удаление/редактирование) - одна сущность, то тогда нужно в один файл. Если же это три разные сущности - тогда и три разных файла.
Как узнать, как правильно? Очень просто. Если в случае с одним файлом получается, что его размер тысячи строк, а функции по 200-300 строк - значит нужно делить. Если всего кода 20 строк, то делить нет смысла.
А во втором мне придется писать один и тот же код в десятках файлов...
Для начала напишите два типичных "действия", посмотрите, сколько кода нужно сдублировать. Создайте новый файл "библиотеку" и аккуратно вынесите туда дубликаты. Начните писать третье действие, пытайтесь активно использовать библиотеку. Если получается неудобно - переписывайте библиотеку. Через какое то время код будет маленьким и красивым.