The new eager loading system has a slight oddity when including duplicate objects
If I do A.find(:all, :include => {:B => :C}), and multiple A's reference the same B, we get duplicate C's included in every B. For every A that references the same B, it adds another set of duplicate C objects to each B.
Clear as mud? Maybe the failing test case I've attached will make thing more obvious. Reader belongs_to :post, Post has_many :comments. If a post had comments [1,2], and two readers referenced that post, then :
Reader.find(:all, :include => {:post => :comments})[0].post.comments # => [1,1,2,2]
This gets exponentially worse as you get more top-level objects referencing the same included object.