Access node only from manual URL
With respect to all of the commentary given to the question, if you really want to do this, you can look at $_SERVER['REQUEST_URI'] in any number of places and based upon its content, do things differently.

For example, if you go to:

www.example.com/path/to/hidden/content

$_SERVER['REQUEST_URI'] will be /path/to/hidden/content


yet if you go to

www.example.com/node/###

$_SERVER['REQUEST_URI'] will be /node/###


but the same content will be displayed while the url in the browser will be different.

So, if you want to obfuscate your nodes based up that, you could delete their content in a preprocess hook, or cobble together something in hook_init to do a 404 but just also be very wary of the caching of pages for anonymous users as well, so hook_boot would be needed instead, and do you want to do this for logged in users and any of numerous other what ifs.........

Plus, if you have global redirect or another similar module installed, the above won't work as it will have already redirected you to the alias.