That is the analogy that is used in the docs but it really isn’t correct, or at least not complete and I would caution you to avoid getting hung up on the “physical device” aspect of it.
A Thing is the representation of a device or service endpoint for a specific technology. As such, it is not possible to combine things from different Technologies.
Combining Things like described is, based on what I’ve learned of the architecture, intended to be done at the Items/Rules level, not the Things level.
At the end of the day, except for some minor convenience in Channel ID names, combining Things doesn’t really buy you much.
It might be helpful to understand a little of the history. Since you have been using OH 1.x for awhile you are very familiar with Items and how Items are bound to bindings in the { } part of the Item definition.
That approach was unscalable and unsuitable to allow automatic discovery of devices and for the ability to define and configure Items through the web-based UI. So a new layer of abstraction was created between the bindings and the Items.
This new layer is made up of Things and Channels and all the infrastructure that allows them to be discovered, created, and managed by OH instead of requiring users to manually edit .items files.
However, this layer of abstraction is ONLY between the bindings and the Items and it is the bindings side of this layer that “owns” the Things definitions. The binding defines what Things are possible, configuration of those Things, and what Channels are available. Because of this, any given Thing can only work with the one Binding that it was created for/by. One cannot mix and match channels between different bindings.
On the Items side of the abstraction layer the interface is now much simpler. you just need the Channel ID to link your Item to.
For all bindings, it is theoretically possible to define Things in a .things file yourself. Some are too complex or lack the proper documentation to make this tenable though, e.g. zwave. But because the binding basically owns the way the Thing is represented and the channels on that Thing, you are still limited to one binding per Thing.
But that is THE main job of a Thing, to interface between the binding and Items. It isn’t secondary, it is almost the Thing’s entire raison d’etre. The integration between multiple bindings is supposed to occur at the Item/Rules level.