Lies dir am besten mal die Anleitung von osmosis durch
http://wiki.openstreetmap.org/wiki/DE:Osmosis
Dort ist auch ein Beispiel für deine Aufgabenstellung, die Befehlszeile könnte dann z.B so aussehen
osmosis --rb germany.osm.pbf --way-key-value keyValueList=“highway.motorway, highway.motorway_link” --used-node --wx motorways.osm.gz
Insgesamt hast du aber recht: Das Filtern ganz gezielter Sachen aus den OSM Daten ist bisher leider nicht so gut geregelt und möglich. Die OSM Daten werden ja immer umfangreicher mittlerweile wird ja jeder Gullideckel und jeder Baum in der Stadt gemappt 
Es fehlt aber noch die Möglichkeit einzelne Daten schnell und gezielt zu filtern. Evt. sollte man langsam mal überlegen, die Daten in verschiedene “Layer” aufzuteilen, z.B ein Layer mit Flächen, einer mit Infrastrukturdaten und ein weiterer für andere Sachen.
So könnte man sich je nach Bedarf nur die Landnutzungsdaten, nur die Straßen, nur die administrativen Grenzen oder was auch immer man haben möchte, schnell besorgen.
Momentan geht das (besonders wenn man nur bestimmte Daten … diese aber weltweit haben möchte) nur wenn man sich eine lokale DB mit dem kompletten planet File anlegt oder viel Zeit hat und die Daten aus der planet.osm filtern.
Für kleinere Gegenden geht das noch einigermassen problemlos mit den Funktionen von osmosis.