Barney Boisvert demonstrated an interesting issue with CFCs on cfcdev. Consider the following code:

Alpha.cfc

<cfcomponent>
   
   <cffunction name="test">
      <cfargument name="test" required="true">
      <cfoutput><br>inside the method, test is #test#<br></cfoutput>
      <cfset test ="apple">
      <cfreturn arguments.test>
   </cffunction>
   
</cfcomponent>

test.cfm

<cfset x = createObject("component","alpha")>
<cfset result = x.test("banana")>

<cfoutput>#result#</cfoutput>

When you run this code, you would expect alpha's test method to return apple. When working with the arguments scope, we've been told that we don't have to use Arguments. in front of the variable. In fact, the debug output inside the method will clearly show that test is banana. However, note that when we change it, we don't use the Arguments scope. When we return it - we do. The result - not apple, but banana.

Something to watch out for. I tend to just always use Arguments. notation as it helps me keep clear which variables are arguments and which are function local or in the CFC variables scope.