I had some thought, and I think routers completely disregard sidewalk tags (which kinda makes sense: even if there is no sidewalk, you still can go along the road in a lot of cases)
So I added a foot=no to
https://www.openstreetmap.org/way/1284968700, and routing stopped using it (both grass_hopper and valhala. OSRM does routing here correctly): https://www.openstreetmap.org/directions?engine=graphhopper_foot&route=56.968756%2C24.152007%3B56.968609%2C24.152123#map=19/56.968594/24.151786&layers=N. 
Don't know how "correct" it is, since at least iD seems to understand that foot traffic on trank is not expected, but at least we can (if want to) prevent routing on foot along trunks.

But this doesn't actually address specifically crossing part.