Recursion works best on data sets where we do not know finite beginnings & ends, and the levels, stages, relationships, etc...are theoretically infinite. A common example is any data structure with a parent/child relationship. This can include a family tree, files on disk, job hierarchy, etc...
Knowing when to use recursion is as important as understanding how to use it. The same goes for iterative approaches. When working with very large data sets, the wrong algorithm can lead to slow, inefficient performance that dooms a project at worst, and slows it down at best.
A very costly common mistake I often see in the real world is when an iterative solution is used in a situation where recursion is the most efficient way to go. Testing with lazy problems like listing the numbers from 0-6 using recursion reinforces potentially bad habits and is almost as bad as teaching recursion using those examples. Simple examples are OK, but should represent the fundamentals that are bring taught.
A better problem for the AP exam would be to provide a problem and NOT tell the students how to solve it. Score the results on if the right algorithm was used and its correctness from there. In the real world, no one tells you how to solve problems, and for a college-level course, the tests shouldn't either.