Das hat nichts mit einem "Schweizer Tagging-Schema" zu tun, sondern einzig mit der Tatsache, dass in PTv1 Zugshalte schon immer separat als Stationsnode (ref = Haltestellenreferenz) und Eisenbahnperrons (ref = Perronbezeichnung [bei uns Gleisnummer]) getaggt wurden. Bushaltestellen werden dagegen klassisch als einzelner node (hw=bus_stop) getaggt und ref ist hier zwingend die Haltestellenreferenz, und local_ref ist die Kantenkurzbezeichnung.[1] Randbemerkung: Der eigentliche Schweizer Alleingang sind uic_ref und uic_name, die zwingend Open Data voraussetzen und nicht on-the-ground feststellbar sind – und dass wir das ref leer lassen (weil zu uic_ref teilredundant) ist die eigentliche Schweizer Eigenheit.

Zurück zum Thema: das Problem, dass du zu sehen glaubst, ist einzig durch PTv2 entstanden. Bei Zugsperrons ist es logisch, dass pt=platform auf dasselbe Element wie rw=platform kommt. Auch bei hw=platform geht dies problemlos. Da aber rund die Hälfte der OSM-Community der Meinung ist, dass pt=platform auf das Element hw=bus_stop geklatscht gehört (und iD dies offenbar immer vorschlägt), hat man sich nun selber ein Problem geschaffen, welches es vorher gar nicht gab.

Im Prinzip ist es einfach, du darfst nicht Dinge gleich behandeln, bloss weil sie für dich gleich aussehen. Was im "ref" steht hängt schlicht nicht von pt=platform ab, sondern von den zugrundeliegenden PTv1-tags. Oder nochmals anders formuliert: ist das pt=platform-Element ein node, ist local_ref zu verwenden, ist das Element ein way, kann ref verwendet werden. Entsprechend verwende ich auf pt=stop_position (zwingend ein node) immer local_ref, weil ich im ref eine Haltestellenreferenz erwarte.

[1] https://wiki.openstreetmap.org/wiki/Tag:highway%3Dbus_stop