Can't seem to find a solid answer to the power on state (before the O/S loads) of the GPIO pins. IE Do the pins default state set to input/output pull ups enabled etc.. My quick analysis has shown some pins are at 3.3V and some at 0V which is okay. But interested to know if GPIO states are consistent between board and/or firmware revisions.
That is easy to answer.
The power on state is defined in BCM2835 ARM Peripherals page 102.
Basically all GPIO are in INPUT mode, GPIO 0-8 have pull-ups to 3V3 enabled, GPIO 9-27 have pull-downs to 0V enabled.
If you are interested in the other GPIO look at the table.
Of course all this can be changed during the boot process, e.g. by device tree etc.