In the picture, you can see how a locomotive stops for a station and for a sign. This happens in North and West direction, and can't be fixed by a pak author, the difference is always there.

In an ideal world, the locomotive would stop for both signs and stations as it's seen to the left, yet when leaving, it would still go straight to the point it is on the right before turning the bend. And I think there is a relatively straightforward way to make that possible while also staying backwards compatible to existing paks.
We'd need these 5 steps:
- for each convoi, add an invisible vehicle of length 0 at front (and perhaps back).
- add a new parameter that defines the position of the rotation axis, similar to length. [call it 'axis' for now]. If none is given, make it a pak setting whether it's 0 or length/2, let's call that "oldaxis=true" for 0 and make it the default.
- redefine the distance between two vehicles A, B in the convoy. Instead of just A.length, it's A.length-A.axis+B.axis.
- when drawing a vehicle, in get_screen_offset, before turning steps into display_steps, add the vehicles axis*8 to the steps.
- make the 'hacks' for different directions optional for "oldaxis=true".
The difference in position in the image would be the one defined with axis. Compared to how it's now, you can imagine an invisible vehicle that has that very length in front of the locomotive - thus, that invisible vehicle would stop for the signal, and the locomotive would come in due distance after it. Once the signal opens, the locomotive still has to go that distance until it reaches the end of the tile and turns. The same would then be true for south and east, if vehicles are aligned properly.
But if nothing of the paks changes, the distance from the invisible convoi leader to the locomotive would be zero, therefore no change in behavior at all.
Why is this in extension request, rather than a patch? Because there is a good chance if I made a patch and it worked as intended and is completely optional, it would still not be accepted. So if this would be denied either way, you can tell me before I work on it (or even better: explain why it's a bad idea)