I think this implementation can be simplified a bit and made to read more clearly:

``` ruby
def failure_message_for_should
  if expected_is_a_literal_singleton?
    simple_failure_message
  else
    detailed_failure_message
  end
end

LITERAL_SINGELTONS = [nil, true, false]

def expected_is_a_literal_singleton?
  LITERAL_SINGLETONS.include?(expected)
end

def simple_failure_message
  "\nexpected #{expected.to_s}\n     got #{inspect_object(actual)}\n"
end

def diffable?
  !expected_is_a_literal_singleton?
end

def detailed_failure_message
  # what you have now for arbitrary_object_message
end
```

Thoughts?  Notice that this relies on the fact that `to_s` for each of the values returns its literal form.