hook_block_view called multiple times per request
It gets called everytime the block is rendered.  Truthfully, that is a bit wasteful since the params it is passed are the same.  Still, in the normal block system, each block only loads once (i.e. it can only be in one region).  This makes the logic forgivable, but yeah, it should be cached.  You can of course cache it yourself in your hook_block_view implementation.

Disclaimer: I am drunk.