Correct me if I'm wrong, but I think geoserver always places polygon labels at the polygon centroids? This leads to the following, imho unwanted, behaviour: if a polygon's centroid falls outside the current rendered bbox, but still a large part of the polygon is visible, the label is not rendered. Consider rendering country polygons with their names inside. You'd want the label to appear when their is enough space in the rendered part of the polygon, not only if the polygon's centroid is in the rendered part.
For an live example, see http://www.sarvision.nl/vision2/ies/greatlakes/demo5/index.html. This will load a custom mapbuilder app with a part of Africa. You'll see country name labels for Uganda, Rwanda and Burundi, but not for the Congo (country at the left half of the bbox).
I think a viable solution could be to use the centroid of the intersection of the polygon and the wms bbox envelope as the label position. This would ensure that the label gets rendered when (part of) the polygon is inside the rendering area.
I thought I'd suggest this on the list first, before opening a jira issue. I might have overlooked some sld label options that solve this, though I did some searches first...
Please let me know your thoughts on this.
Cheers
Vincent.