When label conflict resolution is on and a max displacement is defined (via the SLD vendor option) the actual label placement (for polygons & points) is performed as follows:
A new position is computed using an incrementing radius around the initial point and moving in a counterclockwise cycle with 45 degrees steps until a suitable not overlapping position is found or the max displacement radius is reached.
It will be very nice if the exact way the displacement is performed can be controlled in a more fine grained way since in many cases we want the conflicting label to be shifted only in a vertical position above or under of the one with which it conflicts.
The proposal is to define a label displacement mode which can be used to control the way of displacement.
The displacementMode vendor option will be a comma separated list of the possible following values: N, W, E, S, NW, NE, SW, SE