Hello Vishwesh,
I believe that in this case it is only a matter of where the blocks are installed, and where grc is looking for them. When you install OOT modules (gr-ettus is itself an OOT module for RFNoC) it also has an installation path, where GRC is going to be looking for the blocks that are available, and the ones that are found are going to be listed there. I believe, from what you wrote in your email, that you are using PyBOMBS, and the PyBOMBS environment is really helpful in cases lake this one. Before setting up the environment it would be expected that the blocks are not found, as the enviromental variables that describe their location haven't been set. By sourcing the env, all the things that where installed with PyBOMBS are described with the environmental variables, and the the RFNoC blocks can be found.
That is, you have to source your setup_env.sh every time that you want to use something from that given prefix. The reason why this is not done automatically (which is also the reason why it is not recommended to do so), is because you can set up multiple prefixes, each with a completely different configuration, which you can pull just by sourcing the setup_env.sh file.
I hope this answers your question. Please let us know if further clarification is required.