Wood and charcoal are straightforward -- harvesting a tree gives you wood and saplings, saplings grow into trees, and wood can be cooked in a furnace to make charcoal (you can even use saplings, more wood, or more charcoal as fuel.)
If you make a 2x2 depression in the ground and put water in opposite corners, the remaining corners will immediately fill. You can then pull water out of any corner, and it will immediately refill.
Cobblestone can be generated by making water and lava flows touch.
In real life, we can always make more iron (or insert other resource we might be lacking) by smooshing smaller atoms together. That doesn't mean it's viable source for any scale of use.
Still, I have a hard time seeing any Minecraft scenario under which "there's not enough cobblestone" is a valid complaint. Even without using cobblestone generators, it's incredibly abundant.
The other resources I listed (wood, water, charcoal) are all renewable in a practical sense.
This can produce cobblestone as fast as you can mine it, at a cost of three lava, three iron (for pistons), and a bit of redstone dust (plus items derived from wood, water, and cobblestone, which are all renewable resources)
There are other designs which use even less non-renewable resources as well.
If you really need to speed up the tree farms, even though they're a lot better than harvesting wild trees, get bonemeal by creating a trap around an enemy spawner. Or just create a giant dark pit where water feeds the monsters into a trap in the center (either a pitfall or a lava blade). Again, it's all on the wiki. Infinitely sustainable. I've made all of these, except for the enemy trap, which I'm still working on... by using the cobblestone generator.
I think the spreading apart generally has less to do with resources and more to do with personal space. You don't want your awesome house in your modern style to be next to your neighbor's medieval castle. It just looks weird. People do tend to have their own mines (at least in my experience), but that's less of a reason to spread apart.