Is there a way and/or reason to unload a node after node_load?
It's advised to use node_load() rather than building your own queries.

If you worry about memory impact, you can unload it by unsetting it:

unset($node);


It would destroy the specified variable/object, however you don't have to do it as PHP should handle garbage collection internally.

Secondly the node would be only loaded in your local scope, so once PHP exits  your function, it should be automatically flushed from the memory at some point.

If you're worry about memory impact, you may:


reduce number of modules which hook into the node objects,
run PHP profiler (such as XDebug) to check the memory is used the most, 
enable Devel and its performance checking, it'll show you how much memory is used per individual page,
implement memory caching (instead of using database layer), such as redis or memcached

See: How do you improve Drupal performance?