> No checking will happen if the object definition is not loaded

This is a bit misleading/inaccurate: it's not about whether or not the object definition is loaded, it's about whether or not the named class constant is defined.  I've actually run into a subtle edge case where the class constant was defined but the object definition wasn't loaded, and rspec-fire told me the named class didn't implement a method that it actually did (at least it did when fully loaded).  The specific edge case I ran into was in our use of a github-sourced gem in our gemfile that used the common idiom (as generated by `bundle gem`) whereby the `.gemspec` file has a `require 'mygem/version'`, which caused `MyGem::VERSION` to get loaded (which implies that `MyGem` was a defined constant) when `Bundler.setup` ran (since it eval'd the gemspec file), but the actual definition of the `MyGem` class wasn't loaded.  Note that this isn't a problem with normal released gems...the `.gemspec` file gets compiled to a static YAML file during that process, and thus bundler can read the gemspec w/o it loading the version constant.

While this is a bit of an edge case other users will hopefully never run into, I think it's good to reduce potential future confusion by accurately stating that the checking happens if the class constant is defined, regardless of whether or not the class definition is actually loaded.