The "engineers find it annoying" reason gets dismissed too quickly — morale and velocity compound over time, and a codebase that constantly frustrates your best people has real business costs that don't show up cleanly in any metric. That said, the bar for a full rewrite should still be high.