I like the idea as a gameplay concept (it's a very dynamic and reactive way to control the population), but as a simulation concept it takes a top-down approach to population control. My approach to the game has always been the opposite: simulate the low level interactions (eating, reproducing, mutating, etc) and let the higher ones (speciation, natural selection, evolution) take care of themselves.
So my plan at the moment is to see what effect the vegetation overhaul has first. Grazing in particular should have a massive effect on reproduction and population limits, and I've learned enough not to try to predict what form that effect will take. After that's done, we'll see...
You must have noticed that the hard cap has some very bizarre consequenses ?
The available food cannot work both for blank slate and for advanced creatures that can cross the entire map
So, if you take a large world, what you will see is that most of the map is unused, and creatures cluster together on a couple of spots. That is because they don't need to move, or if they do, they can slowly move the entire herd. So basically, there is far too much food, or it is far too effective to host 1500 creatures. But by hardcapping this, you are doing someting that is unnatural, and the effect is visible. Better would be not to regenerate food where it was consumed, so the creatures die unless they move. But you would need the hard cap anyway, to make sure you stay below what the pc can host.
A wider variety of food would also be a solution, or higher variety as the game progresses. Or set food effectiveness as a parameter.
Anyway, if you want to evolve a creature from blank slate to t-rex, I think the food conditions cannot be equal. While the first is still struggling, the latter can cover the entire map.
Dynamic food allocation also looks at a global scale, and aims for an equilibrium. The equilibrium should be half way the hard cap, so for instance, hard cap at 2000 => dynamic aim = 1000
So in that case you only need the hard cap as an emergency break, and on a global scale you look at survival rates so you can calculate how dense or dispersed the food must be
The type of food or location it is inserted, is random though - so the aim is not : we are out of trees, let's insert some trees, rather it is food on a global scale. If food were a reproducing species, you could have a floating cap on food, which is more elegant than a hard cap on creatures.
In your sim, I have seen omnivores with speed zero, happily procreating. I think that is a result of a hard cap. Dynamic allocation should be subtle and permanent tweaks (as in only insert next tree, when falling below creature threshold) This way there won't be any hard crashes or mass extinctions.
So the idea is : soft cap at 1000, hard cap at 2000
Population explosion allowed until hard cap, but no food at all is inserted if this happens, till count starts going down again, ..., then slowly start adding food while population is falling, and aim for equilibrium 1000. This will always oscillate, it is impossible to keep it at 1000, but you have the hard cap as emergency break
You'll see a lot more interesting battle for food, which makes herbivores faster, and will challenge the carnivores to do even better
It's a hard world
The advantage would be, that we can have lot larger maps, without risk that pc is exploding
Also, some of the creatures I already have are so good, that they are all over the place, and in I want tougher competition, I have to shrink the worldsize, but then there are so many creatures in the same place that it is rather a dynamic meatpile. I think all this can be sorted out with food parameters (either dynamic, or to be chosen by user at start i.e. next to worldsize, also a parameter for food dispersal)
Just my 2ct. I think you don't like this cause it is unnatural, but the hard cap is far worse than unnatural. Maybe combine the two is a solution.