I believe it all depends on how you write the rule.
It can act as a "redirect" or a "rewrite" according to the flags you provide.
1. Redirect
302 will be sent to the browser, and it will initiate another request ( see Firebug with the "persist" option enabled ):
RewriteCond %{REQUEST_URI} !/index.html
RewriteRule ^(.*)$ /index.html [R=302,L]
2. Rewrite
browser does not initiate a 302 redirect because we don't send such header, but it will mask the content:
RewriteCond %{REQUEST_URI} !/index.html
RewriteRule ^(.*)$ /index.html [L]
In this option, if someone will access "page.html" he will see the content of "index.html" not "page.html" but the URL above will still show "page.html"
Good for maintenance page etc ... not sure about login pages ... but it's another option to think about.
The main difference between the "RewriteRule" vs "Alias" in my specific case, is that the rewrite can be set inside .htaccess while "Alias" does not ... so not always you can use Alias ...