File is on the way, thanks! See also more notes below.
About the TextMesh Pro: No help text shows up in my build, not even English! It's not a matter of just deleting.
(Never used Unity, I don't know what TextMesh does. I tried deleting it because I got errors for conflicting dll's in that folder).
Restoring the MAX_DISTANCE and removing the clamp works as you suggested. Apparently you have also been spot on with the expected "physical limit". At least for my creature. It's improving only marginally to about 11.50 m/s after 1000 generations. This conclusion might be contingent on the bug though:
About the bug, I think it has to do with the call creature.gameObject.SetActive(false); in SimulateGeneration(). I think because the sort in EndSimulation() is done on the currentGeneration and not currentCreatureBatch (which apparently is used even when settings.simulateInBatches is false?), the joint.transform.position returns garbage later, when GetXPosition() is called on the best creature, because the best creature has already been set inactive and the transform.position is undefined?
If I comment out this SetActive(false) call, there is never a case of "crazy" numbers for a generation - even when compiling the Optimization branch, for which the crazy numbers would happen all the time.
Problem is, when removing this call my speeds also go much lower. From 11.50m/s to around 8.5m/s, even though on screen the creature seems to be travelling as fast. I don't understand enough about the code to figure out if the lower speeds might in fact be the correct ones. They do improve though: i.e., the same creature that did 11.5m/s and then fell to 8.5 m/s does go up to 9.3m/s in a few generations (whereas before removal of SetActive(false) , the speed would not evolve).
All this testing was done without batches activated.
Thanks again!