Why don't pull-up/pulldown resistors prevent microcontroller I/O pins from changing state?
The pushbutton is approximately 0 ohms short circuit when it is pushed, so it overrides the voltage to 0V, as the 10k pull-up is so much weaker.
Internal pull resistors are in the 20k to 50k area typically, so having an external pull resistor to one state and internal pull resistor to another state will create problems, it might be that the voltage is something that is an indeterminate digital value, ans extra current flows both via resistors and the FETs.
So basically, either use internal or external resistors if in doubt. Internal pull resistors can typically be enabled or disabled in software, so you are free to choose the external pull direction and value.