Does node_load() function prevent multiple loading of the same node? In some cases, for example page where a lot of block are loading the same current node in one request it could be useful to load node just once for every block. Once I read somewhere this is default functionality for node_load() function. 

Is it really true, or do I have to workaround that by myslef (store node as global variable or something like that)? Documentation says nothing about that.
Yes, node data is statically cached per request, if the requests are for un-revisioned nodes. No, you don't need to do the caching yourself.

The cache read/write happens in NodeController::load() if you're interested in what's going on behind the scenes.