Eu percebi isso. Por alguma razão eu tive que acrescentar um "/" ao caminho de reescrita:
RewriteRule ^(.*)$ /app.php$0 [L]
Caso contrário, aparentemente, qualquer caminho seria reescrito para:
example.comapp.php/
Eu tenho outro servidor com a mesma versão do Apache, onde isso não ocorreu, então ainda estou confuso, mas pelo menos funciona.