I recently came across two misconceptions about the cfmodule tag. The first is that custom tags called via cfmodule can't be used in nested, or 'end' modes. However, this is not the case. In order to wrap a cfmodule call, all you do is add another cfmodule tag, like so:
However, if you have another cfmodule tag inside the pair, CF will think your closing cfmodule tag is really closing the tag on the inside. To address this, simply use <tag/> type notation:
So - why even use cfmodule? Whenever ColdFusion uses a custom tag, it has to find it first. Since CF supports multiple custom tag directories, the tag can be found in multiple places. If you don't put the custom tag in the same folder as the caller, this could lead to an issue if two custom tags have the same name. For example, on a development box you may have multiple custom tags called authentciate. The cfmodule tag gives you an easy way around this by allowing you to specify a particular relative path, or a mapping in which to find the custom tag. In general, it's probably safest to always use cfmodule, although I don't actually do that msyelf.