Nums, it seems to me that you're taking things from the wrong side. The first thing one should ask himself, before doing anything, is: why do I want sex reproduction? A few good reasons to introduce sex reproduction in DB have been formulated in the (helas) past years (I'll list them later); but we can just say that introducing it would change the rules of the simulation and give rise to some desirable effect. What's important with in this plan is that it takes the new feature as a starting point for some (foreseeable and desired) effect.
Now, you're taking things the other way. You say, well, sex repro exists in nature, and it is obviously advantageous (because so many organisms adopt it), though I don't know why. So if I want to introduce it, I have to copy it as accurately as possible from nature, so that I'm sure not to leave out something important.
There's something not convincing me in this argument. If you don't know what's the advantage of reproducing sexually, then you may want to investigate about it; to do so with an artificial life simulator, you should take as a starting point a very general set of rules - flexible enough to allow many different types of reproduction - and observe the outcome of natural selection. The result may consist in organisms with, say, one, two, n chromosomes; or no chromosome at all, but just exchanging floating dna or single genes. In any case, you're interested in the result, whatever it is. You want to explain sexual reproduction, but you don't actually need it. It is your goal, not your starting point; hence you should not code it directly in the simulation.
At the same time, you say you want to hard code sexual reproduction in the simulation - just as a rule that you need for new complexity. This would make sexual reproduction a starting point, not a goal, and you should be able to list the benefits of introducing it.
Now, it's been a long time since we first thought about introducing sex in DB. There are a few reasons for this:
1) many of the organisms we're most familiar with (expecially those showing complex behaviour) reproduce sexually. It is not to say that then reproducing sexually is good; but, as DB should show a parallelism with the real world, it is good for DB to reproduce some major traits of the world, sometimes even directly coding them;
2) sex should enhance evolution, by letting the result of good mutations which may have taken place in different branches of the evolution tree mix together;
3) sex, requiring compatible DNAs to mix, gives rise to real species and speciation, which always lacked in DB. The very concept of species is blurry without sex;
4) sexual selection becomes possible, though still hard. The criteria generally used in the choice of the partner influence evolution.
Now, given these points (2,3,4), it is possible to have an idea of what this kind of sexual reproduction in DB should look like. For 2), sex repro should be able to mix dnas of two (or more) individuals, transferring some genes from one to another, or mixing the genes in a new individual; 3) is the consequence of a reproduction mechanism which requires the source dnas to be similar enough to produce a well-formed destination dna; 4) requires robots to be able to make some kind of choice of the partner(s).
These requirements seem to be not too distant from what the actual .sexrepro command does. The least fulfilled is 4): .sexrepro is very weak in that, partially because it is maybe a too simple mechanism, but also because of intrinsical limitations of DB: things in it simply go too fast and good communication between robots which aren't tied is too difficult. Which should be the elements for a good partner's choice?
Also the algorithm which mixes the two dnas is probably too simple - though working, and not too difficult to improve. Has anybody tried to run extensive simulations making use of (and exclusively of) sexrepro?
Anyway, my point is simply that, before thinking of adding features to DB, one should know exactly what he needs.
Bye,
Carlo