I would like to know if this circuit prevents overcharging for 12V lead acid battery or not.
Yes it does if you set the output voltage properly !
Overcharging for a SLA battery is done by charging it to a voltage which is too high. What you must do is set the maximum voltage to the right value so that the charger will not overcharge the battery. This is done with P1. Set the output voltage (with no battery connected !) to around 13.6 to 13.8 V using P1 and you're set. No overcharging possible as the charger will stop charging as soon as the battery reaches set voltage.
The current limiting is needed for when the battery is quite empty. Let's say the battery is 11 V, now we set the charger to 13.6 V. When we connect the battery to the charger the charger will supply as much current as it can to get the voltage up to 13.6 V. But it should not do this, it should just provide a certain current (which is set by the current limiting circuit) and charge the battery with that current until the battery voltage has increased enough and the current will become smaller.
The LM317 also has build-in current limiting already so for a charger using an LM317 you only need a current limiting circuit if the 2.2 A maximum output current of the LM317 is too high or you simply want to lower that maximum current.
So Russell charging circuit has current limiting and voltage limiting. The current limiting is used to charge the battery, the voltage limiting is there to prevent over charging.
I use an even simpler circuit (relying on the LM317's current limiting) to charge my car's battery when needed.
The LM317 will get HOT so it needs to be mounted on a cooling plate or metal box. It does prevent itself from getting too hot though but still cooling is needed.