Rotating Facing::UP or Facing::DOWN around the Axis::Y could just return the facing unchanged, instead of throwing an exception, and this would be valid.
Rotating an axis around itself does not change the positions of the ends of any line segment taken from it.