I would argue against this. Here’s my understanding:
The table names are generated from the name-spaced class name to avoid naming collisions. Meanwhile the current practice is to generate the foreign_key column not from the target class, but from the association name. This means we doesn’t risk naming collisions, as you would have to have 2 differently named associations to reference the 2 differently name-spaced target objects.
Basically, it’s up to the author to name their associations, and in doing so select the names for their foreign key columns. That these most often overlap with the model names is a convenient coincidence.