Adam, I can't seem to duplicate that here. I've tested InputfieldCodeMirror on a field here and am only getting the 'changed' messages when I've changed something. Are there any other factors? I don't think that the content of the field would matter unless something is appending some whitespace to the value (like the javascript perhaps), or converting one type of whitespace to another (like tabs to spaces or spaces to tabs, etc.). First we need to determine where it's changing, so this might be a good place to start... add this to your setAttribute() function in your module file:
if($key == 'value') $this->message(md5($value));
That will display a message at the top of the screen when editing a page with the field. When you edit and save the page, and edit again, is the MD5 value always the same? If it's not, then something is changing, so try this:
if($key == 'value') $this->message(md5(preg_replace('/[\s\r\n]*/', '', $value)));
If the MD5 hashes are now the same, then it means something is messing with the whitespace in the value (likely javascript related). If they still aren't the same, then you may just want to stuff the entire $value into that message() function and copy them out to run a diff.
If all of these return the same MD5 hashes, then tell me how to duplicate exactly, including your field settings and the content of the field, and I can do more testing here.