The emergence of evolutionary novelties often requires the accumulation of several independent mutations. Predicting the evolution of complex genetic systems can be challenging, especially when individual mutations interact, or when the exact form of natural selection is uncertain. Here, we ask how plant self-incompatibility, a relatively simple and well-studied genetic system enforcing outcrossing in the flowering plants, has acquired extraordinary levels of allelic diversity by a repeated process of functional diversification. We study the fate of self-incompatibility variants in simple models of isolated populations and then show that introducing population subdivision can lead to unexpected interactions with the genetic architecture of the trait. We finally take advantage of the Arabidopsis model to set up a transgenic approach and directly put some of these predictions to the test.