Isn't it a matter of ones preferences though? Even if the leadership is capable if a person finds day to day work with crappy codebase and poor tooling a drag there is no point in joining.
I wonder if it's simply the balls to tell top management that we need to invest in training, refactoring etc. And selling it that it will payoff.
The usual answer I get when I propose this, is that "we're too busy with projects".