Какая ещё статика?! На любом шареде статика на nginx.
Кроме того, для 404 (и других ошибок) в Apache есть ErrorDocument. Но он срабатывает только для несуществующих файлов, а если речь идёт про несуществующую страницу в ОК, то о редиректах в Apache нет смысла говорить, потому что уже сработала строка с
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
и дальше в любом случае обработка идёт уже средствами ОК.
То есть, если говорить о несуществующей странице (и заранее не было известно, что она не существует), то редирект через Apache просто не получится сделать!
А если заранее известно, что страница не существует, то подойдёт обычный редирект с RewriteRule и перебор правил редиректов через Apache в любом случае будет быстрее, чем передача запроса в php и проверки там, ибо Apache написан на C, так что любые задачи будет выполнять на несколько порядков быстрей программы написанной на интерпретируемом php. Плюс, опять же, экономия php воркеров, которые всегда лимитированы.
А это уже вопрос к тем, кто их пишет. Кривой код в php встречается не реже, но это не повод обвинять язык, он не виноват, что так привлекает гавнокодеров.