Ben's description aligns with my own experiences. We had a similar bug reading/writing a text file with decimals, and fixed it in a similar way (by saving/setting/restoring the locale setting).
Same here. But in that case, rather than fiddling with the locale (I wasn't sure of any unintended consequences of doing that), I swapped in a custom sscanf() that assumed decimal separators.
Still, I'll manually swap into the C locale when using OCIO in my imminent update, but I agree it should probably be done inside OCIO at some point. One less implementation detail to worry about.