You're going to need way more than that for all their subdomains, CDN, CDN's subdomains, etc. Not to mention having to keep it all up to date in case they roll out a new domain.
Assuming /etc/resolv.conf is set up with "search <localdomain>" before any nameserver entries (which it invariably is), then any DNS query will first try the localhost.
In the absence of a nameserver on the local host, then the DNS lookup will search /etc/hosts, where it will find an entry for facebook.com that resolves to 127.0.0.1 (localhost).
Now the browser knows where to find facebook.com. It requests the web server at localhost to serve the URL. If there is no webserver, the browser gets back a "connection refused". If there is a webserver, the browser gets back a 404 error.
In either case, the browser just moves on to the next request.
Since it all happens on localhost, it is blazingly fast compared to an internet lookup, and the user won't realise.
127.0.0.1 facebook.com