I think that making the steps bend and curve, not following it’s physical path is not quite right, I would propose using highway=footway to link the bottom of the stairs with other entities since that more accurately represents what’s happening on on the ground.
We have to do some sort of abstraction when turning the real world into a vector abstraction.
For me this is a quite valid simplification. Some pedestrian bridges also have a zig-zag in the steps upwards, others go straight. Some might curve up in a spiral.
For me it is fine to have this simplified, because the key point is: There is a bridge is there. And with it connected to the other elements it is possible to do pedestrian routing.
We leave off other points as well. Look at the different ways to map sidewalks.
In reality there is no dedicated footway leading from the road (where cars drive) to the pedestrian bridge. Usually there is a sidewalk along the road and the bridge starts from that. With the typical highway simplification these two geometries are merged into highway=*. So the bridge starts from the footway (sidewalk).
The logical representation of the ways is correct. What’s missing is a pleasant rendering taking into account the shapes of the bridge and also different width of the roads probably.
If it’s not pleasing to your eye then ok, go on with adding a small section of footway to get the steps in a more rectangular shape. The bridge will be closer to reality with the cost of having a “dedicated” footway that is not existent in reality.
Choose whatever simplification error you think fits best.
Perhaps a similar example is a 4 way dual carriageway highway intersection, where we simplify matters and draw like a hash tag, and do not add all the diagonal paths that vehicles actually take when turning right or left.