Multiple tree's require multiple draw batches. This makes it impossible to batch the tree's in the best way. This WILL slowdown the rendering process. Better tree's also kill performance because it requires a higher poly count.
It is not necessarily true, thanks to instancing you are able to draw many trees in one batch and instancing is not the only way how to do that but it depends on scene and renderer design. On current hardware with programmable pipeline it is easy to keep batch count low because you have geometry shaders, texture arrays, texture buffers and etc. so many things can be done in shaders now. I think batches are no longer problem on current hardware because programmers have a lot of ways how to keep them low and in many cases it also simplifies renderer design.
GPU memory speed and pixel overdraw are problems which are still very actual. It's not problem to draw millions of triangles per frame if you keep vertex data small. But this is not possible for whole scene. But grass and trees are ideal candidates for this.