I figured out what threw me off. phpinfo() produces different reports depending on whether you’re running it as CGI or with the Apache module. With the Apache module, the phpinfo report has an apache section that lists all the other Apache modules including mod_rewrite.
With PHP running as CGI this section of the report is missing. I was accustomed to finding mod_rewrite in the phpinfo report from other hosts, and I was surprised when it wasn’t listed even though it was obviously working. What I didn’t notice was that it wasn’t just mod_rewrite missing from the report, but the entire Apache section!
It makes sense now: In CGI mode, as you said, PHP doesn’t have much to do with Apache, unlike the Apache module where they are more closely connected.