IMO, except for the reason mentioned in the last paragraph, all reasons
are due to internal issues of Rails, from which the programmer should
be insulated. I think it's not good if you expect the programmer to
cover up for issues you have inside the framework.
But you have a good point in the last paragraph (ie. just by looking at
a model class, you will know all its relationships). That's good enough
for me.