Very late reply here.
I very much like the idea of negative indices to indicate a flipped face orientation. In fact, we use it frequently enough in our own code.
The only adjustment you need is to define it as -idx-1, (or as -(idx+1) if overflow isn’t an issue). This means that a flipped face 0 would be -1, a flipped face 1 is -2, etc.
Another convention we use is that a flipped face always retains its point 0 and only the rest of the list is reversed. This makes life much easier.