"for a
method there exists an additional precondition (i.e. that some
instance variables are set in a particular way)."

there is still a precondition in either case

precondition: an instance variable is set in a particular way


  def first
    @name = "sam"
    last
  end

   def last
     name = @name + " " + "jam"
   end


precondition: something is passed to it (something set in a particular 
way)


def first
    name = "sam"
    last(name)
  end

   def last(first)
     name = first + " " + "jam"
   end


A lot of what you said I see as great points, but not that one because 
it is the same in either case.

-- 
Posted via http://www.ruby-forum.com/.