When ColdFusion parses your code, it normally throws an error if you pass an argument to a tag that does not exist. For example, this line would throw an error:

However - three tags do not follow this rule: CFCOMPONENT, CFFUNCTION, and CFARGUMENT. For these tags only, you can pass any argument you wish. Why would you do that? All the arguments passed to these tags end up in the metadata for the component, or UDF. So, if you call getMetaData() on the CFC or UDF, you will see the additional arguments. The CFC self-descriptor uses the hint argument to help describe methods. You are free to use any argument you wish, just be aware that ColdFusion will ignore them.

Posted 2/28/03: Sean Corfield reminded me in the comments that the cfproperty also allows for dynamic attributes.