It is technically correct to either have a node or platform (way or area). In Latvia, it's generally done via a bus stop main node. But since one needs to basically use JOSM to move relations over, it's always a pain to edit. So often it's mapped as whatever element got the routes (first). In other countries, it's often on ways like it was here - which isn't wrong and I guess apps and renderers are just poorly implemented.

As long as it's not both, which are indeed mapped incorrectly in a lot of places (and then apps like SC or ED ask all the stop details twice, wasting time.) In fact, that's what https://osmlatvija.github.io/Osmalyzer/Duplicate%20Platforms%20report.html is for.

I recreated nodes for this case and moved the relations over to them. Of course, either case is a compromise for rendering and app display, because now platforms no longer render, because otherwise they would be tagged twice.

In this case also, these are sidewalks, so they need footway tags for routing, or it won't work at all with most routers, so if platforms are drawn, they need to be drawn as areas to allow the regular footway way.

It's all a mess that takes a lot of time to edit, is easy to break, and editor, renderer and app support sucks...