i.porkchop_sandwiches.count.should eq(1).
Then for object identity you can still use be: i.porkchop_sandwiches.first.should be(my_sandwich)
This is actually more in line with the original RSpec, which had should_equal and should_be, and I prefer it because you eliminate the warning, and (I think that) "1.should eq(1)" actually speaks better than "1.should == 1" for someone familiar with ruby but new to RSpec.
That said, I see little benefit in making rubygems bundler-aware, and I think it would constrain both projects in undesirable ways. For example, you propose rubygems checking for a Gemfile, but that is only a convention. Bundler supports an env var to identify the location of a gemfile. So right away, rubygems would need to support both of these techniques. When bundler adds new and better ways to do this, rubygems would have to be updated to keep up. Or, perhaps, it wouldn't, in which case the projects would fall out of sync.
Bundler already offers us simple ways to do this. See http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-... (including the comments) for more information.