There's a document written by The Guy Who Knows, https://www.scribd.com/doc/101830961/GPIO-Pads-Control2
, that says it all.
If you wish the GPIO to give the guaranteed voltages - 0.8v for low, 1.3v for high - then don't take more current than specified.
You can set a GPIO to give any value upto 16mA, in steps of 2mA.
The pad will try to drive the output high or low. If it succeeds depends on what is connected. If the pas is shorted to ground it will not be able to drive high.
In fact it will try to deliver as much current as it can and the current is only limited to what the internal resistance is.
If you drive the pad high and it is shorted to ground in due time it will blow up!
The same holds true if you connect it to 3V3 and drive it low.