I made a simple routine to simulate ground plant growth. It's calculating the fertility factor for surrounding tiles and then growing a plant or if some type of growth exists it's growing it to the next stage. The result from such simple simulation is actually quite nice. Here is the situation after one iteration:
And this is the same place after ten iterations:
As you can see water gives better fertility factor in pretty much natural way. Now after this is done I can start to implement the plant object generation (these are just simple terrain tiles) on top of that. The great thing about this is that the routine can be run again and again. With large values everything will change to thick swamp, and with plant generation I'm already dreaming of forests that will be properly tuned for temperature conditions, creating jungle or cold/dry climate forest. All that without any kind of static or pre-determined routines. Just some rules for growth and iterations.