It turns out that three.js has some special code to handle negative scaling in the backface culling code. If the determinant of the transform matrix is negative it auto-flips back and front faces.
If this support is backported, we should also revert d33040a