I am going to write a fairly long email about deletion and destruction
in has_many :through associations, and then make some proposals. Sorry
for the length, but I think it's currently a mess which we need to get
sorted. Please do read it
I've spent many hours dealing with strangeness related to these
issues. I like your proposed solutions, and I wouldn't mind updating
my codebases with this kind of breaking change.
As far as rolling out, I suggest adding a deprecation warning now to
all has_many :through calls that will change, and maybe backport those
deprecation warnings to the 2-3-stable branch. Many people still have
not upgraded to Rails 3 and keeping the 2-3-stable branch up to date
with deprecations will help a lot. I'd also suggest releasing this in
a minor release (as opposed to a tiny release).