It really depends on how many leaves/trees you're going to draw.
If you want to draw a large amount of trees, you're going to end up with enormous vertex buffers. The demands on video memory will grow rapidly with every baked tree you add, so unless you have a way of quickly streaming large chunks of mesh data in and out of video memory, your foliage will end up eating memory.
3. Hardware instancing.
Instanced leaves can be placed in smaller 16 bit vertex buffers accompanied by a texture (buffer) filled with transformation matrices. Combined they take up less memory, and can still be drawn in a single batch.
The drawback with static instance buffers is they make depth sorting harder and since all leaves carry the same vertex data, it's hard to bake local information like ambient occlusion.