I had the same concerns when I looked at byte code enhancement via JDO for the first time. Then I educated myself.
Byte code is a language specified in the Java language spec. It a very clearly specified language with very specific rules.
Also, you compile your classes don't you? Is that mutilation of your code also?
The positives of byte code enhancement are clear. No line number issues when debugging, no problems using tools like CVS, etc. JDO is extremely lightweight relative to other proprietary and standardized persistence options. Part of this is because of enhancement.
Many of the enhancers used by JDO vendors are open sourced (RI and others). If you are uncomfortable with byte code manipulation see what they are doing.
Finally, JDO doesn't prescribe a byte code enhancer. I beleive there are vendors out there with source code enhancers. If you don't want the so called "mutilation", you can choose not to use a byte code enhancer.
I for one, will happily take the benefits of JDO (30% code reduction, much cleaner code) and byte code enhancement, over the other options.