While this answer makes a valid attempt at answering the question, it is based on personal experience.
I went to the literature and directly to the source code in Cura to find the answer. In the academic article "Identifying the Directions of a Set of 2D Contours for Additive Manufacturing Process Planning", Volpato et al. describe several methods for identifying the arbitrary directions of each contour in each layer, and additionally identifying which contours were "internal" and which were "external". I quote from the paper:
The information regarding contour
direction, which is either clockwise (CW — internal) or
counterclockwise (CCW — external), is needed for path
planning for material processing.
They go on to explain the importance of identifying which contours are external, and which are internal, such that the path planning algorithm can later determine where infill should be placed. Infill is placed internal to any external contours, and external to any internal contours.
When the normal vectors in STL models
are assumed to be correct, a simple way to identify whether
a 2D contour is CW or CCW is to analyze the vector (cross)
product between a normal vector and a vector obtained from
two vertices of the facet.
This assumes the slicer has already determined intersection points between slicing planes and the STL file, and has sorted those intersection points into closed-contours. This initial intersection point gathering and contour construction leads to an arbitrary directionality:
As any line segment of a contour can be the first in the
sequence when the segments are connected, its orientation
will dictate the direction of the contour. Hence, the 2D contours
formed are classified randomly, and an external contour, for
example, might be assigned a CW or CCW direction. Therefore, this step is unable to correctly identify the directions of the contours generated.
The ray-tracing method, which is actually based on the
point-in-polygon test, determines which contours are
contained by others, and the orientation of each contour is
then alternated between CCW and CW, the outermost contours being oriented CCW.
So, the default directionality of a closed contour generated by a slicing program for FDM additive manufacturing turns out to be CCW based on cross products described above (and based on additional methods outlined in the paper). Of course the standard directionality of a PRINTED contour does not HAVE to be this way, it appears to be a standard adopted by the AM community. However, when a model produces contours inside of contours, the arbitrary directionality of those contours is determined, and then alternated from outside to inside, starting with CCW.
As confirmation, according to a simple comment in the CURA source code:
* Outer polygons should be counter-clockwise,
* inner hole polygons should be clockwise.
* (When negative X is to the left and negative Y is downward.)