You're not wrong, it's the behavior of the tool. The links follow all the FK-PK relationships found in the database. A model created from a database is only a "raw model", so you will need to refine it to align with your own expectations. The tool cannot presume whether a table should be considered as a "join table", even if it only has 2 FK. Perhaps it would be interesting to add an option to consider all these types of tables as de facto "join table" ? Anyway, the join table (or "join entity") must exist in the model to be referenced with the @LinkByJoinEntity(xx) annotation in a @ManyToMany link.
Yes, it would be interesting to create an annotation to consider this kind of tables as "join table".
Is there a way to exclude this kind of tables in the $entity object in the velocity template? Because for these tables it should not to be created any entity class.