Why are MCP23017 (port extender) input pins high by default?

Grumpy_Mike:
Yes if you want the period between the power up or reset, to the code running to have the value of zero. This is sometimes needed if those pins are eventually going to be outputs and you have wired the outputs to be active high ( a common rookie mistake ). Then you might need a pull down resistor on those pins but more commonly you would design the system so that peripherals are active low.

Outputs are routinely designed to be active high with pull-down resistor... especially if there's a MOSFET connected to them.

As a separate note, it'd probably be a good idea to have this discussion not split over two threads.