Else is relatively new, added in 2.4, by me. Since it's so new, it hasn't been used a whole lot. (Very few bots have been designed for 2.4).
Else and Start should be what's considered "genes", with the cond part a sort of out-of-stream controller. Or that's how I envisioned it anyway. The whole thing gets rather complicated in this regard.
For instance, you could have a cond with no associated gene, or several genes controlled by a single cond.
You are right that else should fire when cond is not met, the exact opposite of start.
Most regular commands need to be in either a cond, start, or else block to fire. Some need to be in a start or else block to fire.
I spent alot of time deciding on how the DNA stream should be interpreted, but far less time deciding the macroscopic architecture. Viruses, which take a "gene" and pass it on somewhere else complicate things (Conventional viruses should work in 2.4, but some mutated genomes might behave peculiarly) as does the GUI, and delgene, and such other "non-essential" elements.
If you gain any insights into a better way, that would be wonderful. I was mostly planing on changing the way everything that relied on "genes" worked. Viruses using codules instead, etc.