Our goal is not to model biochemical reactions and chemistry. It would be too ambitions and actually a step away from the original goal of looking at evolution. Instead, we want to allow bots to make choices on how to utilize thier energy in best way to survive.
That's ok. As I said before, our interest should not be in biochemistry in itself: if we feel the need to add some sort of biochemical system is because we noticed that DB fails in simulating some important aspect of evolution, and we correctly identified the problem in the complete absence of something like a biochemistry.
Here there are two things to say.
First, I don't think we want bots
to make choices on how to utilize their energy. As you said, the good thing in DB is that DNA provides almost endless possibilities. There are other alife software in which the dna just specifies a few parameters, like probability of doing a certain thing or another. But that's optimization, not evolution. So, we want an open ended system, which instead of providing a few choices, could provied an entire world of different possibilities.
Second, that if we need something like a biochemistry, it must be something related to the DB universe, not a mock up of real world's biochemistry. So we should forget about CO2, O2, sulphur... all things which are totally meaningless inside the DB's universe.
So we'll provide functionality directly, without giving bots access to all possible chemical reactions. We can give them protein, fat, carbs and some intermediates and a way to convert these molecules into one another. Each molecule would have different properties and affect bots in different ways: proteins require a lot of energy, but they allow cheaper/more efficient functionality, fats are a good long-term energy storage, carbs are good short-term energy storage and provide turgor.
But why then we don't simply give to each robot an array of parameters, each specifying the ability to digest something, and state that the total sum of the array must be fixed to, say, 100? It would be an easy and effective way to force robots to specialize. The only problem is that it would be
clearly not open ended, and we don't like this. So we need to hide an equally not open ended system behind a complicated set of rules, to make it seem more clever than it is.
Finally, you can decide the ability to digest proteins, fat, or whatever else... and then? You also have to decide which robots are made of what, and in which percentage. You may have food chains with erbivores able to digest cellulose, and then predators able to digest proteins... but who decides that vegetables are made of cellulose and erbivores of proteins? Wouldn't it be easier to put a good control in the simulation options, stating who can eat what, once for all? (obviously, I'm joking).