with_scope & association proxies

I've been doing stuff like

class Book < ActiveRecord::Base    has_many :contributions, :dependent => :destroy    has_many :contributors, :through => :contributions, :uniq => true    has_many :authors, :through => :contributions, :source => :author, :conditions => "contributions.role = 'author'" do     def <<(author)       Contribution.with_scope(:create => {:role => "author"}) { self.concat author }     end    end end

(which I stole from has_many :through - New on edge: Magic join model creation)

In 2.0 with_scope is protected, to discourage abuse. Is this still a legitimate use of with_scope or is there a better pattern to follow ?

Fred