My guess is that the function FindCurvePath and friends never has been very satisfying. This has been reported for earlier versions, and maybe WR is working on it - which might explain the difference in behavior. I would rather use FindShortestTour instead:
pic = Thinning@Binarize[EdgeDetect[Rasterize@Style["\[Euro]", FontFamily -> "Times", 500]]];
ListLinePlot[pdata[[Last@FindShortestTour[pdata]]]]
Or much better (and without discrepancy to earlier versions! - because there was no ImageMesh ...):
rEur = ColorNegate@Rasterize@Style["\[Euro]", FontFamily -> "Times", 500];
eurLines = MeshPrimitives[ImageMesh[rEur], 1];
Graphics[eurLines]
In general I think that WR must have the chance of improving things - which will necessarily result in changes of behavior depending on versions.
Regards -- Henrik