I have seen this for a long time, but it never seemed to create any problems
really. As long as you use the same best-practices you'd use to keep code
cross-platform everything should work fine.
If you still want to go ahead with a smart operator, I'd vote for:
3) join, then normalize resulting path to forward slash
since it is consistent with the way os.path 'wants' to work (which is make
the separator compatible with the OS)
Ofer