When an Arduino Uno is powered on, the USB chip's DTR output pin may (is, in fact) low for a while. This means that the capacitor C5 is connected from the 328p reset pin to ground. Thus, when power is applied, the reset pin is held low for 10's of milliseconds after power up (while C5 charges) . 

Thus, when the 328p starts, the reason for reset (the MCU register) always is "external reset", not "power on reset", even when power turns on. 

This can be fixed by removing C5, or opening the "reset en" jumper, but then the chip is never reset by the falling of DTR,...that is, bootloading is disabled. 

Is there a solution that allows POR and external reset for the bootloader? 
Thanks!