File optimization: Duplicate or linked duplicate?
Especially in the case of things like trees you could use linked duplicates. 
You can create those with Alt+D. 

But if you have already created the normal duplicates in your scene you can still link them by selecting all objects that you want to convert to a linked duplicate, then select-click the object that you want to link them to and press Ctrl+L in object mode and choose "Data". 
That will turn all these objects into instances. That means they share the same mesh. However, you can still transform the objects, by moving, rotating, scaling so that they look a bit different. 

A common problem when using Linked Duplicates is that this will usually also mean that they have the same material. However, you can also have different materials on linked duplicates by changing the material link in the material tab in the properties editor from "Data" (which means the material is linked to the mesh) to "Object". By doing so you can have objects that share the same mesh and still use different materials on them.

That way can decrease the file size A LOT. 



Another way to add many objects (like e.g. trees) to your scene is to use Group Instances. Usually this is done by having a separate blendfile for the object that you want to use as an instance, or, so to say, as a library object. 

Example

Create a file with the tree. Select everything that belongs to the tree (but not lamp or camera) and create a group by pressing Ctrl+G. The outlines and wireframe will turn green to indicate that these objects belong to a group. Give the group a proper name ("tree" e.g.). Save the file in your project folder. In your main scene file, open the file menu (F1) and choose "Link" (or use Ctrl+Alt+O right away). In the now open file browser you navigate to the tree file and click it. That will bring you inside the blendfile directory, where you can go to a folder named "Groups". There you can choose your group ("tree") and link it to the scene. The tree is now attached to an Empty object. You can duplicate, move, rotate and scale this group instance, but you cannot edit the mesh or material, because all the data is linked in from the original file.

This is probably the cleanest way to add library objects to your scene.