lesto:
uhmm, la sceta di usare due compilatori diversi me la aspettavo, ma il fatto di creare due core differenti dell'IDE...
Non poteva essere diversamente, il core è scritto in C e in quasi tutte le funzioni deve accedere direttamente all'hardware, tra un AVR e un ARM c'è qualche "piccola" differenza
Insomma, i linguaggi ad oggetti nascono apposta per risolvere quetso genere di problematice, ed arduino è scritta in java.
Il core è in C, ti stai confondendo con l'IDE che non ha nulla a che vedere con il core di Arduino.