What is this amplifier doing, exactly?

I like that ABC guide a lot, but I would not use this circuit. I even think it is really bad.
If the output pin of the Arduino is not set as output, the two 100k resistors will turn the transistor on a little.
The two 100k resistors makes the amplification a little analog, but the Arduino output pin is purely digital.

So I would remove both 100k, and perhaps add a flyback diode over the speaker.

Nick, you can't rely on the measurements. The BC546 can do 100mA, and this circuits requires 278mA. The BC337 is a transistor that can handle 800mA.