No, it's quite different. That protein might have come from anywhere in the genome. It get's created, floats around a bit, finds its target, and latches on. If its target moves, so does it. If its target doesn't exist, it doesn't bind. If there are multiple targets, multiple proteins may or may not bind to the site. The protein may be encoded somewhere in the DNA, so in that regard you're right that the DNA includes it somewhere in itself, and thus regulates itself, but the actual mechanism is not embedded next to thing it wants to protect, which is my point.
Mind you this idea (that organisms can control their mutation rates voluntarily) are new in biological thinking. They're not quite as dogmatic as some of the more central tenants of evolutionary theory.
I see your point. However, it sounds like it would be difficult to implement and difficult for evolution to take advantage of (since each "protect codule1" instruction must tie to a certain "codule1" exon, etc...).
How about having the protection instruction that Eric and I were talking about act like a protein, so it can be "glued" to the exon? That way, if one instruction in the exon moves, then the entire codule (including the mutation protection "protein" instruction) moves. You could also have multiple mutation protection protein instructions (MPPIs) for the same codule, like having
10 .protect5 store
9 .protect50 store
in which case the two MPPIs could "compete" for protecting the next exon within the next nine/ten lines***, just like how you said two or more proteins could be assigned the same exon to protect. Here, maybe one of the mutation rates could be randomly chosen out of the two, because the other MPPI couldn't bind to the exon before the first one did.
Or, the 9 .protect50 store could apply it's mutation rate to only the next nine bps, but let the 10 .protect5 store govern it's (the 9 .protect50 store's) mutation rate. This way, you can never 100% protect a certain exon (since even a 10 .protect0 store is subject to the outside mutation rate, so it could change to 10 .protect200 store) but you can get really close, just like real biology.
The only problem with this idea is that the protected exon must be directly behind the MPPI, like Numsgil pointed out. However, since the MPPI acts like a protein (it's basically an exon that makes a protein that attaches to the parent exon and the next x bps), this is still just like real-world biology. Besides, the fact that the MPPI is right before the exon it protects is not a big deal. Why make code somewhere else that protects code at another place? This does the same thing, evolutionarily speaking. Also, come to think of it, having code at one place protect code at another place sounds like a DB version of goto. Nesting them is a debuggers' nightmare.
Just one instruction, so it's easy to implement and easy for evolution (and coders) to use, but it also has most of the features Numsgil wanted (like binding specifically to one exon, and binding-site competition).
Plus, it can decrease or increase mutation rates, like by having 10 .protect200 store, which would double the mutation rate for the next 10 bps.
Everyone happy?
***- With this method, an MPPI could protect lines of code not directly behind it.