> Marketing and/or Product Management and/or Sales and/or the CEO constantly throw new requirements and new feature/functionality or constantly change existing architecture or design or functionality at the whim of the customer, at the "agile" development team who are expected (they are 'agile ' after all) to be able to react on a moment's notice
If you are following SCRUM to the letter, only a team's Product Owner is allowed to give them things to work on. Any other stakeholder who wants something done has to convince the Product Owner to include it; they are never allowed to give something directly to the team. XP doesn't require that new work always goes through a single person, but it does require that everyone coming up with requirements comes together in the Exploration, Commitment and Steering phases to help the developers properly prioritize work from the different sources.
> There is certainly no proper requirements review, certainly no design or functionality review
SCRUM includes an explicit place for this in sprint planning and backlog refinement. XP includes an explicit place for this in the "planning game".
> certainly no code review or proper software test engineering.
If this is true, you should fire your developers. Following SCRUM, work on something is not done until it meets the team's Definition of Done which is created by the team itself. The people on the team have the authority to require that proper code review and testing is done before work on an item is complete and the team can move on to new work. If they are not doing so, they have no one but themselves to blame. XP places an even higher emphasis on code review and testing and explicitly requires it.
> This also makes recruitment very easy for companies - no need to have experienced software development managers who can judge and find good people.
Really, it's almost the exact opposite. The lack of day-to-day management of the developers doing the work makes finding and hiring good people an even bigger and more important part of the software development managers' jobs.
> The other popular alternative is to just outsource to a bunch of 'agile developers' you have absolutely no control over in some third world country where the developers can't even speak or write English - which of course isn’t their fault because they were never taught or expected to speak or write proper English anyway.
Essentially the exact opposite of Agile. The Agile manifesto explicitly says "Business people and developers must work together daily throughout the project" and "The most efficient and effective method of conveying information to and within a development team is face-to-face conversation". Both of those are in direct opposition to using off-shore outsourced developers.