How to avoid invoking the same module every time when I have to call a function of that module in Drupal 7?
You're calling the same function over and over, that's true. But the parameters are different, so from a pure programming point of view, the processing could be completely different. I don't see another option to approach this.


Is it a good idea to use the module_invoke() every time when I have to call hook_block_view() with different arguments?
Yes
Is there any other function that can be used for calling the same function or any other function in the module after one- module_invoke()? Not that I'm aware of
Is there any other way of doing thing? I don't think so


More specifc, some functions allow passing an array of arguments instead of one. Eg node_load_multiple allows to pass 1 nid or whole list of nids. But hook_block_views doesn't allow this.