Currently, all trees are defined in trees.xml, which looks like this
<tree name="Pine 1" species_id="0" texture_id="0187babf-6c0d-5891-ebed-4ecab1426683" droop="60.0" twist="5.0" [...] />
This is really a pretty small chunk of data, and could easily be attached to a prim and configured with an LSL call similar to LLParticleSystem. Any other shape attributes of the prim so equipped could be ignored (and as an optimization, could simply not be downloaded). The prim would display as the selected plant, phantom, non-physical, moved by wind, etcetera.
Since these are prims they could be linked to a build, and would be better than unlinked Linden trees in sold builds.
Since they would be phantom and simple, they would have as little impact on the sim as a regular tree.
They would reduce the number of prims in use.
They would create incredible new building opportunities.
Proposal VWR-303 in Jira, and Custom Linden Plants in the Wiki.