An interesting problem with a good solution.
On reading the help for the String to Path function it said, "Converts a string, describing a path in the standard format for the current platform, to a path." I think the fact it says 'in the standard format for the current platform' means it tries to be a bit clever and converts strings which are not written completely right into a path, making certain assumptions which aren't always the case.
The array function is a good way to get around it.
Good work..
Kim