На 404, вообще говоря, да.
Что касается постоянного перенаправления, я полагаю, это зависит от контекста. Если бы мое решение по маршрутизации поддержало это в любой разумной манере, я бы, вероятно, пошел на это, если не ожидал столкнуться с большими проблемами масштабирования.
То есть, если бы я работал с большим трафиком и имел много статического содержимого для обслуживания (но не настолько массового, чтобы использовать в качестве веб-сервера все, кроме apache), я мог бы запустить php под fcgi, чтобы сохранить apache процессы тонкие (и используют лучший MPM, чем prefork). В таком мире я, вероятно, в конечном итоге закоротил URL-адреса, и веб-сервер сделал бы перенаправление.
Но даже в таких случаях нет причин не делать это вначале в своей структуре маршрутизации.
Таким образом, если запрос проскальзывает, все равно работает, даже если он замедляется.