I'm not sure what you mean by "Flipping around the axis that is local to the skeleton could also be valid". What would define such an axis? A skeleton has a global coordinate system and then a number of bones, which each have its own a coordinate system.
The root bone is indeed a bone in every sense. It is only special because it has no parent. A bone has its own coordinate system. It originates at the bone position and is rotated and scaled by the bone. Each child is defined in this coordinate system and so is affected by the scale, rotation, and translation of the parent. Since the root has no parent, it is uses the "global" coordinate system which is (typically) screen axis aligned and has no rotation and scale.
The question is: Do we define flipping the skeleton as flipping the global coordinate system or flipping the root bone? This decision affects how the skeleton is positioned at runtime.
Currently, in some runtimes the skeleton is placed by setting the root bone position, so flipping the skeleton by flipping the global coordinate system changes the position, which is not desired. The skeleton could have an x and y position which is added to the world positions of the bones. Leaving the root bone at 0,0 and then setting its position is just another way to do this.
In other runtimes something else is positioned, eg a scene graph node. In this case 0,0 is the position of the skeleton. This means the root bone does not need to be positioned to place the skeleton, so the root bone doesn't need to be at 0,0 and can be used for part of the skeleton. If the skeleton is flipped by flipping the root bone, the root bone position is not changed and so will be in the wrong place.
What is the reference point for a skeleton? 0,0 or the root bone position? It's an interesting decision since both approaches are valid. I'm leaning toward not using the root bone for position. This means 2 extra additions are needed to offset each bone's world position for rendering, but we will have one less bone transform, which is 10 multiplies, 5 additions, a cos, a sin, 3 ifs, a method call, and about 25 field accesses. What do you guys think?