Did a (little) bit of reading and thinking. Changed my mind about a couple of things in the process. Here's what I'm thinking:
Seems to me there should be two ways to transfer genes/DNA in general between bots.
1. Viruses/DNA shots. Should be nrg expensive but long lasting.
2. Ties. Cheap and quick, but you need to physically attach a tie to the other bot.
All gene transfers are implicitly agreed upon by the bots involved.
For instance, each bot can have an ID tag that allows only "viruses" with that tag into their cells. This ID tag can even be set to disallow all viruses from entering the cell. Of course, to do so, the cell stops itself from the benefits of horizontal gene transfer.
For tied bots, both bots would need to set their ID tags to the same value and both set a gene transfer tag or something like that.
In such a system, "malicious", self replicating rogue DNA can propogate itself as a consequence of the rules rather than a specifically allowed behavior as the current system is.
Only thing now to figure out is how to specify what DNA to transfer. shvarz proposed something a while ago in this regard, that at first I wasn't terribly fond of, but I've come to see that it's rather smooth, if possessing some kinks still.
So what I propose would be something like a replication command involving some number. This number would be a hash function that would remember the following details:
1. Some length of DNA
2. A particular hash value for the above length of DNA
3. Length of DNA to copy. Copying starts at the instance of the above hashed DNA closest up or downstream to the copying command.
Copied DNA is then stored somewhere and either a virus shell is made for it or it's transfered via ties.
So a self replicating virus might look something like:
*.eye5 & 56 add add 'this DNA strip has hash value 31542
31542 .repDNA store 'command to copy this segment of DNA. Length to copy etc. is stored in the 31542
1248 .mkvirus store 'ID of the viral coat, only bots with this ID for their "cell walls" can be infected by it.
or something like that. There are some technical issues I may want to experiment with...