(a) I suspect this is a typo, and a very bad one
We therefore take power directly from the 3.3v pin on the board, which takes its power in turn from the DC regulator on the board which takes power from our 9v Power Supply.
There is no 3.3 Regulator on the Arduino board, though on some shields.
The author MUST mean 5V here!!!
(b) 40 mA from an AVR pin.... dear, dear - can't this fairy tale stop somehow... What the datasheet wants to say is that you should not generate more than 100mW of heat per pin.
The inner resistance of an output pin is around 60 Ohms.
- Connecting a 100 Ohms will result in 37mA flowing and the voltage drops down to 3,7 V (has to, as its 100 Ohms).
- Connecting 50 Ohms results in 56 mA and the voltage drops down to 2.8 volts.
If you like you can make a shortcut, resulting in 75 mA , which is a little bit high and the chip becomes warm (converting around 300mW into heat internally)