It's possible to rotate labels around a point, even using an angle of rotation supplied from a datalayer field.
SLD example which labels parcel dimensions in Wellfleet (it is important that the labels follow the angle of each parcel side). In this SLD the points are displayed by purple dots but in the final map these would not be desired.
The rotate is achieved by the <Rotation> tag. The field in the data layer that supplies the angle is called "ANGLE". The function "subtract" had to be used <Sub> tag to subtract the angle from 360 degrees because the optional <Rotation> element specifies that labels should be rotated clockwise by a given number of degrees. The values for ANGLE in the database were + or - a number of degrees.