yes ..if u r using port0 as i/o pin u must have to connect pull up resistor .
if u are not using pull up resistor it gives logic 0 but will not gives logic 1 , instead it floats (high z) .
2nd question is why it does not have built in pull up resistor.
The P0 port is characterized by two functions.
PO is used to interface external external memory .
If u have to interface external memory then the
address/data is applied on it. Port 0 is also designated as AD0-AD7, allowing it to be used for both address and data..address and data is multiplexed.
Otherwise, all bits of this port are configured as I/O pins.
when extrnal memory is connected to port 0 then microcontroller will provide internal power source to its pins so there is no need to connect external pull up resistor.