Scrolling back I see I missed a little bit of the earlier discussion - so to elaborate a little:
Simple 'merging of blocks' (i.e. I have several blocks connected together in a particular way, and want to wrap that up to re-use in other places) is what GNURadio refers to as a hierarchical block. The blocks are being re-used (to avoid duplication of code, which all programmers learn to hate the second time they copy and paste code and then have to go back and fix bugs in both places), but not being modified: and their connections are static.
If you want to use the functionality of several blocks and not have a static flowgraph (e.g. I want to access particular functions of particular blocks, but in some dynamic fashion that is not easily rendered as a static flowgraph), then you would want to do as Richard suggests: create your own out-of-tree module with custom blocks. For what I would consider to be any advanced functionality (i.e. application-specific function that is more than just a custom flowgraph) this is going to be required. That said - there is a fairly large set of things that you can do within the static flowgraph framework - and you can certainly spend a long time developing applications entirely within GRC before you need to go down the path of creating custom blocks. Since the amount of things you will need to learn at that point greatly increases, I suggest holding off until you know for sure this is what you need.
Doug