Even though by tweaking the Rack::Rewrite code a tiny bit, I can get the tests to run properly, I don't think that Rack::Rewrite is the problem.
Here are the details:
The change in rack-rewrite/rule.rb:
path = rack_env['REQUEST_URI']
path = rack_env['PATH_INFO']
The change to rule.rb does not affect the application's behavior when accessed from the browser. I should also note that some, but not all, of the rules I set for Rack::Rewrite are indeed processed.
Guesses as to what's up: