That's a very useful circuit for an astable oscillator. However, for a useful wide range oscillator, I would recommend a couple of alterations.
The circuit gets its range from adjustment of VR1. If it's adjusted right down to zero, the frequency and adjustment become silly. Add a small resistor in series with it to set a minimum value.
If you use a linear potentiometer, the adjustment sensitivity becomes very twitchy when you are at the 10% end of the travel. I would recommend using either a logarithmic potentiometer, or another pot in series of perhaps 10% of the value, to give you coarse and fine controls.
To extend the adjustment over more than 10:1 on the pot alone is impractical. I would recommend using a rotary switch to select capacitors for C1 in a 1:10 ratio, so 100nF, 1uF, 10uF etc. This type of oscillator keeps a DC bias across the capacitor, so it's OK to use electrolytics for the larger values. Warning, electrolytics often have poor tolerance, so your frequency calculations may be wrong, and poor leakage, so a really large capacitor may not work at all. You can expect RC combinations down to one second to work, to 1000s won't work, somewhere in the middle, try it.
There is a fundamental problem with 0Hz, in that it would take an infinite capacitor to generate, and you an infinite time to see it. Something more practical like 1Hz, or 0.1Hz might be a better lower limit.
While LM324 is specifically designed for low voltage, TL072 is not. However, it is specified down to a 10v supply, so it may still work OK at 9v, you'll have to try it.