Atmega pin designation

If you write 'int LED = 3', the compiler (not IDE) has no idea what in hardware you are referring to, just that you have a variable called LED which is assigned the value 3.

If you do this:
digitalRead(3);
Then the compiler still has no idea what hardware you are referring to, it simply calls the function digitalRead(). The function then reads a pointer from the flash which it uses to write to the correct hardware register.

The pointer in the flash is where the magic happens, and this is all defined in the pins_arduino.h file.