There has been discussion about putting a new syntax into Rails 4 that more closely resembles scopes. Example:
has_many :comments, -> { where(deleted: false).order(:created_at) }
This would solve the problem of eager evaluation because it's contained in a lambda.
I'll be looking into this when I get around to it.