Realizing after talking with @gravitystorm and @makella that it would be useful to think about line/polygon symbolizers being able to contribute to the collision detector cache used to avoid label overlaps. In this sense we could think of all symbolizers supporting at least two modes: either put feature bbox's in the collision cache or don't. Symbolizers like line and polygon would still default to not populating the cache while symbolizers like marker, text, and shield would still default to populating the cache.
see also http://support.mapbox.com/discussions/tilemill/3498-prevent-contourline-labels-to-cross-lines
I wanted to ask if there's any progress on this issue. After a long evening of talks about improving rendering we decided it's necessary to have a way to write into the label cache. See the following image:
The label in the right bottom should be avoided, as it crosses two bridges. We discussed if it would be possible to introduce a <LineLabelCacheBlock> or so, but the suggested method would be even better. I could just render a transparent line with allow_overlap="no" on top of the bridge label, and no river names would obscure these bridges again.
So +1 to this issue.
@plepe - You can render some text/markers with opacity="0" along those bridges as workaround.