Same address for different registers in LPC2418 UART
For example 1:  

The way registers like that work is that the hardware handles register reads, and register writes differently.

Basically, there are actually two registers in the physical chip. When you read from the address, it retrieves the contents of register A. When you write to the address, it writes into register B.

You should note that the hardware documentation states the following:


  UART1 Receiver Buffer Register (U1RBR - 0xE001 0000, when
  DLAB = 0 Read Only)
  UART1 Transmitter Holding Register (U1THR - 0xE001 0000, when
  DLAB = 0 Write Only)


(Emphasis mine)



For example 2:

I believe that which register is available is a function of the current execution context. When the execution is within the interrupt handler, reads to 0xE000C000 access the IIR register (which is read-only, incidentally). 

During normal execution, (or possibly when any non-UART interrupts are firing), read/writes are to the FCR register.