As Remo suggests, the render-order symbol property will affect the order in which feature data renders, whether draped or not.
styleName {
render-order: 5;
}
It simply calls setRenderBinDetails with a bin number; so, it is subject to any limitations of that OSG mechanism.
Draped features are implemented using a projected texture. So when the terrain surface renders, the draped geometry is texture mapped on top of the imagery each time a layer renders. If you only want the draped features to render once, consider using a FeatureImage layer instead -- it will rasterize your features into a normal ImageLayer.
TerrainEffect is a terrain-wide shader that runs when the engine renders each visible terrain surface layer. It will take effect after the engine draw the imagery and after it draws draped geometry.
Hope this helps.
Glenn Waldron / Pelican Mapping