Google Webmaster Central blog has started a series of post to discuss “Response codes” like 200 for “OK”, 301 for “Moved Permanently”. The first post is dedicated to “404 file “Not Found” response code. There’re two kinds of 404’s on the web “hard 404s” and “soft 404s.”
Google advice of not using “soft 404s” because the “soft 404s” return a 200 response code (the content of the 200 response is often the homepage of the site, or an error page), instead of returning a 404 response code for a non-existent URL. This create confusion for users as well search engines.
As exemplified above, soft 404s are confusing for users, and furthermore search engines may spend much of their time crawling and indexing non-existent, often duplicative URLs on your site. This can negatively impact your site's crawl coverage—because of the time Googlebot spends on non-existent pages, your unique URLs may not be discovered as quickly or visited as frequently.
What should you do instead of returning a soft 404? It's much better to return a 404 response code and clearly explain to users that the file wasn't found. This makes search engines and many users happy.