The line you referenced has been changed in master.  Currently the require is done in the method itself so the cost is deferred until the method is actually called -- that's what makes thing tricky.  And a bit of a side-note, but requiring is thread-safe, at least in 1.9+ (there's a mutex in the `require` operation).  I believe it's thread-safe in 1.8, too, but maybe not atomic.  Auto-loading is definitely not thread-safe in 1.8.