XD well, it only modifies itself where and when I tell it to, so, technically it's still only doing what I say. If I told it "modify your code whenever you want and however you want" then it would have a mind of its own, but that's not really possible yet.
And it does permanently change the instruction, at least until you either change it back or turn off your DS. It doesn't modify it on the actual AR though.