"wouldn't lack of diversity be a consequence of the selection method?"

Diversity of individuals in the population depends on a number of factors. The selection method is one such factor. But another factor is what individuals there are to select from in the first place.

Using the simple mass extinction event technique, you effectively limit the pool of individuals that can be selected from to those few that survive the extinction plus the new randomly created individuals that take the place of those that went extinct.

I suppose this could be considered a special rare breeding phase that combines an elitist selection method along with a 100% mutation of the remaining population.

Some other factors that influences diversity are the crossover and mutation operators that are used, along with the decisions concerning which parts of the program trees are allowed to change and where they get the replacements from.

For instance, if crossover were allowed only from or to certain parts of the tree, that could decrease (or even increase) diversity compared to the standard case of imposing no such restrictions during crossover.

Another possibility is performing crossover multiple times per generation on the same individual. The more similar a given individual is to other individuals in the population, the more crossovers could be performed on that individual, hopefully increasing the diversity in the population. Multiple mutation could similarly be employed.

Yet another factor that could affect diversity is simply the population size. Clearly, a population of one individual is minimally diverse. As the size of the population grows, so too (hopefully) does the diversity. There has been some research in to dynamically sizing the population to increase or decrease diversity as needed.

Something else that has been proposed for increasing diversity is segregating highly fit individuals from very unfit individuals. This way the highly fit individuals won't come to dominate the very unfit individuals, and thereby hopefully preserve diversity. This could be done with an island model, and as higher fit individuals on a certain island evolve, they can be transferred out of the islands of lower fitness to other islands of higher fitness.

And there are probably dozens if not hundreds of other ways of trying to influence diversity, as it is a critical aspect of genetic programming.

One last thing I should mention (maybe I should have mentioned it first) is that a lot of this depends on exactly how you measure diversity (yet another important field of research).

Is it enough to call a population diverse if every individual is different from every other individual? Well, what if they are but they differ only in ways that don't affect fitness? Or what if they do differ in ways that affect fitness, but with only minor variations from individual to individual? And what about structure differences? It's possible to have two individuals with the same fitness value but different structures. And there are many other measures as well.

So, depending on how you measure diversity (and when you do so, and to which members of the population), you could come up with different approaches to trying to influence it.