Turns out it isn't, and there's a lot of stuff detailing different approaches, but they seem to be evenly divided into Stuff That Works And Is Slow and Stuff That's Not Great But Is Fast.
I suspect LOD is the way to handle this, but if that's the case then this is going to have to be phenomenally clever. The LOD will have to interleave with whatever geometric solution I'm using, so that each plant doesn't have to be rendered individually.
(Hum...if I had a set of self-modifying formulas, ones where the state could be stored and the rest of the tree restored from them, then the LOD wouldn't matter, it could be generated by dividing (roughly) the info about the tree by the LOD for the current representation. This would result in a finite number of possible trees for each species, would reduce the amount of detail per tree to a (possibly) manageable amount, and still have the kind of effect desired. Hopefully.)
I wonder if some sort of grouping algorithm could be produced, so that after certain LODs are passed a cluster of trees becomes a stand, and a larger group becomes a forest, etc. This would also allow for better imaging on smaller plants, because you could still focus on anything larger than, say, single blades of grass, but from even twenty feet they'd become indeterminate bushy things.