A viral defence won't be able to delete this virus since it spreads random genes, so any attemt to delete it will just delete the gene it's trying to spread (So the bot will loose some genes till it hits the virus)
But the genes spread from other bots will still pass most viral defences since they're not hostile, also mutations will break parts of viral defences (Which in this case may prove to be an advantage)
Only slime bots will be able to stay clean for a while, but sooner or later something is bound to get through. If you're planning to run the sim for a long time then eventualy everything will be infected, and ou don't want to overdo it. If you have 2 new genes per generation it's not quite the same as 2 mutations per gen, a lot of mutations aren't functional or just cause a minor tweek.
But I like the idea of deleting or adding genes, together with mutations it should help keep the dna length down, since bots that are too long will mutate too much, making the virus itself a benefitial gene of sorts.
Also you mentioned the virus shots lasting longer aorund the end. This could be a different virus from one of the bots, but it could also mean your own virus is mutating to fire stronger shots, making the new virus more potent and widespread. So instead of evolving the bots you're evolving a stronger virus. I'm not sure it's realy a problem though, maybe making the alge imune to viruses would help (This way the virus depends on the bots to survive, but it may take a semi large sim for it to work)
EDIT :
Firgured I'd give it a try too, using this gene :
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']start
*.vtimer 0 =
*.genes rnd .mkvirus store
*.vtimer 1 =
*.robage *.dnalen mod 0 = and
10 .vshoot store
stop
start
*971 0 =
*.genes 971 store
*.robage 0 =
100 rnd 20 < and
971 inc
*971 *.genes >
*.genes rnd .delgene store
stop
This way the longer the genome the less often it spread the virus. Also it doesn't remove genes, only adds (Mutations should take care of deleting genes)
Also I introduce selected bots from F1 that I know have some nice genes, and a viral defence that won't block the behavior of this virus. (Starting with the weakest)
This way the bots have time to get infected so they can pass off some genes to the next species.