Meine Auffassung: Das ist nicht ein Objekt, das gleichzeitig Kneipe und Biergarten ist, sondern ein Biergarten (Objekt A), der zu einer Kneipe (Objekt B) gehört (Beziehung).

Ein Semikolon dient zur Modellierung mehrerer gleichberechtigter Werte eines Attributs eines Objekts. Es dient nicht zur Zusammenfassung mehrerer Objekte in ein Datenelement. Fast immer, wenn es Schwierigkeiten mit dem Semikolon gibt, funktioniert daher eine von zwei Lösungen:

  1. als zwei Objekte modellieren, die implizit oder explizit in einer Beziehung stehen
  2. eines der Objekte zum Attribut degradieren

Oben habe ich z.B. für den Biergarten-Fall eine naheliegende Modellierung der Art #1 angegeben. Ein anderes Beispiel, das gerne genannt wird, ist amenity=bank;atm - was einen misslungenen Versuch darstellt, zu beschreiben, dass zur Ausstattung der Bankfiliale ein Geldautomat gehört:
Lösung Art 1: Bank als Polygon, Geldautomat als Node. Implizite Beziehung dadurch, dass der Node im Inneren des Polygons liegt. Explizite Beziehung durch Relation wäre auch denkbar.
Lösung Art 2: Bank als Hauptobjekt, der Geldautomat wird zum Attribut atm=yes in der Bedeutung “hat einen Geldautomaten”.

Das ist natürlich absolut richtig. Sobald man merkt, dass es Probleme gibt - und das passiert sehr schnell -, sollte man sich eine “richtige” Lösung suchen, statt das Semikolon für Dinge zu verbiegen, die es nicht leisten kann.