a suggestion for the rail system: you could pre-calculate the positions at each "physics frame" beforehand, up to intersections or path ends, then speed up or slow down the rate you play them based on the speed and direction the rail is being traveled. something like this would prevent instances where you get stuck halfway off a rail on corners.
other than that, I very much enjoy the gameplay of the rail system and the path optimizations involved, both for direction and length, and would be fine with keeping it the way it is.