Richtig, Osmosis (mit oder ohne OSMembrane) ist flexibler, wenn es darum geht, komplexe Pipes aufzubauen. Überhaupt ist der Funktionsumfang größer als bei osmconvert. Andersrum hat auch osmconvert ein paar Funktionen, die bei Osmosis fehlen. In 95 % aller Fälle wird man die Aufgaben mit jedem dieser beiden Werkzeuge erledigen können. Es ist also meistens Geschmacksache und kein “das eine ist immer besser als das andere”. 
So ähnlich. Ich hatte keine Angst davor, aber das verantwortliche (und recht unübersichtliche) Stück Code ist auf ganz andere Weise entstanden: Um das PBF-Format wirklich zu erlernen, wollte ich PBF-Daten nicht einfach nur mit einer fertigen Bibliothek einlesen, sondern jedes Byte mit einem selbst geschriebenen Programm konvertieren (mit Ausnahme von gzip). Das ist mir schließlich gelungen, und das Ergebnis war das Programm “pbftoosm”. Es war, was den Quellcode betrifft, wahrlich kein schönes Programm, aber sehr wahrscheinlich das schnellste PBF-Leseprogramm, das es bis dahin gab. Das daraufhin zu osmconvert übertragene PBF-Lesemodul war und ist nicht in der Lage, mehr als eine PBF-Datei zur gleichen Zeit zu verarbeiten.
Ein Ergebnis dieses PBF-“Workshops” war übrigens das Format o5m. Ich wollte ein Format haben, das seine Daten möglichst gut komprimiert, aber schneller zu verarbeiten ist als PBF.
So, genug gebabbelt, zurück zum Thema. 
Wenn man zum Mergen nicht Osmosis, sondern osmconvert einsetzen will, empfiehlt es sich, die regionalen Dateien gleich als .o5m herunterzuladen. Da es dafür leider noch keine Quelle gibt, wandelt man einfach beim Runterladen um. Das hat zudem den Vorteil, dass sich die Daten dann später schneller verarbeiten lassen. Beispiel:
wget download.geofabrik.de/openstreetmap/europe/germany/bayern.osm.pbf -O - | osmconvert - -o=bayern.o5m
(Das Linux-Download-Tool wget gibt es auf für Windows, keine Sorge.) Bei dieser Art des Umwandelns kann man auch gleich nicht benötigte Informationen rauswerfen, das spart später Zeit und Speicherplatz (siehe z.B. Option --drop-author).
Hat man nur zwei PBF-Dateien, die man mergen will, geht es auch mit osmconvert per linearer Pipe:
osmconvert bayern.osm.pbf --out-o5m | osmconvert - thueringen.osm.pbf -o=zwei_laender.pbf
Will man mehr als zwei Länder GLEICHZEITIG mergen, die NUR als PBF vorliegen, dann muss man entweder vorher in .o5m umwandeln oder (so ähnlich wie auch in Osmosis) komplexe Pipes verwenden. Diese Pipes sind allerdings bei osmconvert nicht “eingebaut”, sondern über das Betriebssystem verfügbar. Bei Linux geht das recht einfach mit “mkfifo”, Beispiele liefere ich gern. Wie und ob es unter Windows geht, weiß ich leider nicht… Tipps willkommen! 
Alternativ kann man auch schrittweise arbeiten:
osmconvert land1.pbf -o=a.o5m
osmconvert land2.pbf a.o5m -o=b.o5m
osmconvert land3.pbf b.o5m -o=a.o5m
osmconvert land4.pbf a.o5m -o=alles.pbf
Oder man baut eine ganz lange lineare Pipe:
osmconvert land1.pbf --out-o5m | osmconvert - land2.pbf --out-o5m | osmconvert - land3.pbf --out-o5m | osmconvert - land4.pbf -o=alles.pbf
Grüße
Markus