Came across that looking at Hunt Showdown 1896 doing PathStripToRoot() on a paths like "D:/a/b" (forward slashes) and expecting that to return TRUE and path "D:". The game doesn't clearly break now when it behaves differently on Wine but also works a bit differently with files with unknown consequences.
Windows implementation doesn't actually handles forward slashes but due to different specifics ends up with "D:" (which probably makes sense if / is not treated as a special characters, a path like that would represent a relative path on drive D: and D: is a correct root which we currently don't return).
Fixing just that without looking at functions around and checking against newer Cch functions looks not fully sensible to me. The newer PathCchIsRoot, PathCchStripToRoot behave similarly to the older ones (starting from Vista), while PathRemoveFileSpec results look quite different from PathCchRemoveFileSpec so I considered it should be implemented separately.
I hope that since the most of the functional changes (except for PathRemoveFileSpec reimplementation) look as simplification it might be also justify these changes.