Great Post Andriy.
On your scalability concern, I think you're making the assumption that the Puppini Bridge has to be a single physical table.
That is not a requirement. In fact, each table can provide its own bridge records per stage in a separate table, and you can pick and choose which bridge record-sets you want to include if your data is too big. This can be a view that sits on top of the bridge components, or you can simply materialize it as a table.
This also I think addresses your concerns around schema extension, cause the view can be built dynamically using a macro (for tools like DBT) or at least provide a central place to make edits.