Arduino/DuinOS vs Normal C/ARM Programming
My understanding is that the Arduino language is cross-compiled into C-compatible binary,


There is no "Arduino language". Programs are written in C++ or C, and the IDE mangles them in certain ways in order to ease development by beginners (and on occasion frustrate development by veterans).


  and the Arduino EEPROM libraries are used to effectively 'flash' your Arduino code onto the Atel/ARM chip,


No. The uploading of the compiled code is done using a separate program, usually AVRDUDE or bossac, and the code is uploaded into flash. Data can be optionally uploaded into EEPROM via the same program, but this is not required.


  which is running DuinOS. Your Arduino 'app' (software) can then take advantage of DuinOS utilities, such as scheduling, semaphores, events, critical sections, etc.


Not by default. If you want to use DuinOS then you will need to download, compile, and upload it yourself.


  My understanding is that if I wanted to program an ARM chip myself from scratch, I would have to use something called an ISP programmer to 'flash' an embedded RTOS onto the chip first. Then, I would have to write C code, compile it, and again use the ISP programmer to deploy the compiled binary to the ARM chip, which is already setup to boot the RTOS when powered on.


Nope. Any system can be run without an OS.