Index: trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 15727)
+++ trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 15728)
@@ -16,4 +16,5 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 
 import javax.swing.DefaultListCellRenderer;
@@ -103,4 +104,14 @@
         if (applicableWays.size() > 1) {
              applicableWays.removeIf(w -> selectedNodes.stream().noneMatch(w::isInnerNode));
+        }
+
+        // Smart way selection: if only one highway/railway/waterway is applicable, use that one
+        if (applicableWays.size() > 1) {
+            final List<Way> mainWays = applicableWays.stream()
+                    .filter(w -> w.hasKey("highway", "railway", "waterway"))
+                    .collect(Collectors.toList());
+            if (mainWays.size() == 1) {
+                applicableWays = mainWays;
+            }
         }
 
