Ni Avrdude ni el bootloader analizan el código que se transmite así que por muy disfuncional que sea el código que se intenta transmitir no debería ocurrir ningún problema durante la transmisión.
Si el código contuviese construcciones o instrucciones ilegales se produciría un error cuando el Arduino intenta ejecutar ese código pero no durante la fase previa de transmisión.
Debe ser un problema de sintaxis, de los símbolos que contiene el código y no de lo que esos símbolos signifiquen, de las instrucciones que están codificadas en ellos. Se trataría de encontrar "una letra" equivocada y no una instrucción equivocada.
El método más rápido es comentar o suprimir grandes bloques de código hasta aislar la linea concreta que crea el problema.
Un ejemplo de símbolo que atasca el sistema de transmisión en la mega es "!!!". Si hay una string literal como "Sobrecalentamiento !!!" en el código, las 3 exclamaciones seguidas impiden la transmisión del programa.
http://arduino.cc/forum/index.php/topic,126778.0.html