The A/B testing use case is probably the one good one there, at least if you can't serve the variations on the server side. So many issues come from trying to overwrite the page without it flickering/being blatantly obvious to the user.
However, it's sometimes a necessary evil due to:
1. The original company not budgeting time/effort from their existing dev teams to work on A/B testing, and wanting to outsource it instead.
2. Said company and their tech department being nervous about letting outsiders actually access the source code for their site/app.
3. Or said company wanting the analytics/features that VWO/Target/Optimisely/whatever offer, and not wanting to have code up the same analytics toolbox themself.