Which is the right way to build a single relationship M: N for an unknown number of elements
There is nothing particularly wrong with having separate junction table for each of the M:N relationships.
That being said, you can handle these relationships in a more generic way, and at the same time lower the number of tables by using inheritance1:

For more information about the concept of inheritance, search for "Subtype Relationships" in ERwin Methods Guide. For some hints at how the inheritance can be implemented in a relational database, take a look at:
1 Aka. category, subclassing, subtyping, generalization hierarchy...