One thing you could do is strategically place brushes in the following manner:
- Mist flag set on every face.
- Nodraw flag set on all but one face.
- Trans33 + trans66 set on the last face.
- Grass texture with alpha channel set on the last face.
Trans33 + trans66 uses the alpha channel for transparency, so you could make a texture with some grass blades sticking up, then place that at the edge of some bunkers and a few other locations just to give the effect of 3D grass without having to have 3d grass all over the place. This also would not use up entities like func_model does. ub_rooftop.bsp uses this approach for the flower beds.