The & and ? characters apparently used to play hell with search engines, and mess up their stuff, but most of them (at least, the ones that matter - Google) get over this...
The problem is, Google still likes .html over .php?something=1&somethingelse=2&theother=3
Apparently having a shorter URL does count for something, heh.
Google will see them, but it doesn't rate them as highly. Here's an example I posted in another thread...
http://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&q=allinurl%3Awww.reptilerooms.com+chat
That's the URL to search on Google for the chat page on my site.
Now, both of those URLs are identical (as far as my Apache is concerned). It translates the faked out .html address into the real address and sends the page down.
But, In the google listing there, you can see it shows "Chat-main.html" above "index.php?module=Chat&func=main", and if you actually go to those URLs and look at the PR in the Google toolbar...
Chat-main.html is 5/10
index.php?module=Chat&func=main is 4/10
And the content on both is identical. So that's the main reason I've decided to go for it.
As far as using a HTML extension over a PHP extension on the fake URLs, my main reason was for practicality. All my files DO end in .php, I don't want to accidentally create a .php file that produces a URL that would forward to something else.
If I created a page, "Chat-main.html", where would my system send the browser? Would it send them to the REAL file "Chat-main.html", or would it send them to "index.php?module=Chat&func=main"?
So, I don't know if Google does rate .html higher than .php without any actual parameters on the URL, but personally, I use it simply to easier separate fact from fiction. If all the fake URLs end in .html, and there's a problem, I can instantly see it's an error with the fake URL presentation. If I see an error directly related to a .php file, I know it's an actual php file I need to start looking at.
The main difference of using mod_rewrite is to eliminate all the extra parameters on the URL. It doesn't matter whether you do set .html files to parse for PHP code or not. Even if it's set, "index.php?module=Chat&func=main" would simply become "index.html?module=Chat&func=main".
So, mod_rewrite TOTALLY fakes the URL to eliminate the parameters (or at least the & and ? characters of the URL) to make it look like a regular static page - it's not just a different file extension.