Some points to add / correct...
The only thing file extensions are used for is so that the webserver knows what to do with the file BEFORE it is sent to the user.
If it sees .txt, it knows to send a Content-type: text/plain header. If it sees .html, it sends Content-type: text/html.
Now, you can tell Apache to do other things too, for instance, when you install PHP, it adds this line to your httpd.conf file:
AddType application/x-httpd-php .php
This simply tells Apache to hand that file extension over to PHP before sending it to the user. If you removed this line, or someone deleted it by accident... your PHP files might be sent over as plain text, showing your code / passwords.
You can make Apache hand over file extensions over to PHP by simply adding more stuff there, .html, .htm, .asp, .txt, whatever you want.
There really is no more of a chance that .html files being parsed by PHP will be displayed without parsing ( ie plain text ) than there is that .php files being parsed by PHP will be displayed without parsing.
Any file that is going to be handed over to PHP before being sent to the user is going to be very, VERY slightly slower than if just Apache sends it. Marginally and negligibly slower. You won't ever notice the difference.
Passwords and other important files should be stored outside teh document root, so that even if Apache / PHP bombs out, you shouldnt' need to worry about those getting exposed.
Search engines don't care about file extensions. There just happens to be a lot more .html and .htm files than .php / .asp / .jsp, so it seems that way.