cfproperty is useful when using custom objects in remote methods. For example, suppose I had the following component:
<cfcomponent displayname="User">
<cfset variables.firstName = "first" />
</cfcomponent>
Which I wanted to use as a return to a remote method being consumed via SOAP. I would need to <cfproperty>
tags for each variable I wanted to encapsulate in the returned object, in order for that object to be included in the WSDL document as a complex type. Therefore, the component from above would have to be:
<cfcomponent displayname="User">
<cfproperty name="firstName" type="string" />
<cfset variables.firstName = "first" />
</cfcomponent>