Die “Regel” ist: wenn man rüberspringen kann, “stream”, sonst “river”.
Du wirst also auch vieles mit “river” getaggt finden, was man umgangssprachlich als “Bach” bezeichnet (und mglw. auch “bach” als Namensbestandteil hat).
Das Schöne an OSM ist, dass auch Du weiterhelfen kannst.
Also zum Beispiel den Dir wichtigen Flüssen ein entsprechendes Tag (z.B.: waterway:level) zuordnen. Und dann kannst Du auch danach filtern.
… und breitere Flüsse werden mit riverbank bezeichnet, d.h. hier wird die Wasserfläche eingezeichnet. Normalerweise läßt man da die Linie, die den Fluß beschreibt, noch durchlaufen, aber verlassen würde ich mich nicht drauf. Und manche Flüsse haben gleich zwei Flussläufe (fiel mir z.B. bei der Elbe nahe Ustí auf).
Es gibt auch noch Relationen mit type=waterway. Auf dieser Wiki-Seite ist auch eine hierarchische Auswertung verlinkt, die der Flussordnungszahl entsprechen müsste.
Allerdings sind laut Beschreibung die Flüsse 1. Ordnung als Ausgangspunkt in einer Konfigurationsdatei hinterlegt, also nicht direkt ableitbar. Evtl. kann man das indirekt über die Tags ref:fgkz und/oder destination machen, sofern vorhanden? Oder die Konfigurationsdatei anfragen und danach filtern?