The circuit is needed for EVERY pin that drives a relay.
Since a rectifier is about $.50 and a transistor is about $0.95 and the resistor you need about $0.05, you should not need to spen more than about $1.50 per "buffer". This circuit can be used to drive much more than just relays. It can drive a small motor, a small 12V lamp, etc.
On the drawing, you can supply the V+ side (near the Diode, Relay and the Transistor) with 12Volts and the 12 Volts will only be used o energize the relay.
I think that some more of your questions can be answered here: Arduino Playground - SolenoidTutorial
Note the circuit is different, but it performs basically the same task.
This is a circuit made by someone who is REALLY cautious and wants to protect the Arduino.
While a solenoid is designed to convert Electical Energy into Mechanical Force. It is literally the same as a relay on the control (coil) side and only differs on the mechanical side where a relay spcifically closes contacts whiole solenoids allow you to perform some other action... like move a bar that holds a door closed.