Единственный смысл делать аргумент final в том, чтобы исключить случайное, неумышленное переопределение параметра в коде, которое было бы багом, а не задуманным поведением. В этом плане final помогает, т.к. прямо на этапе компиляции не даст этого сделать. Это его плюс.
Минус же в том, что на практике я еще ни разу не встречал бага, вызванного случайным переопределением переменной. Зато весь этот синтаксический мусор каждый раз при чтении кода пробегать глазами и игнорировать приходится.
Так что по совокупности PROS/CONS для себя я сделал вывод, что final в аргументах (как в общем-то и в локальных переменных) не нужен. Но это лишь личное мнение. У других людей оно может отличаться, и это нормально.
Главное, принять что-то одно и дальше везде делать одинаково в пределах одного проекта.