The Arduino core functions (anything defined in .../hardware/arduino/cores/arduino/*) should be described in the "reference" area.
The compiler is gcc/g++ and should mostly be described in any book on C (and to some extent C++, except that some of the constructs from C++ that are popular on desktop systems for which C++ is usually taught don't work well or aren't applicable to small embedded microcontrollers like arduino.)
avr-libc functions, and some of the gcc features specific to the AVR should be described at http://www.nongnu.org/avr-libc/user-manual/
Most of these are implementations of standard C functions, sometimes with particular enhancements or limitations (for example, printf() doesn't support floating point by default.)
I don't think the IDE is supposed to need explaining. Various bits of its internal operation end up discussed in the forums (preferences file, boards file, etc.)
And of course the source code for everything is out there to read :-)