I did some testing, and if I set some private CFC variables in the pseudo constructor on a bean, and then perform the respective setPropertyName( respectiveOptionalArgument ) inside the init() constructor, my setPropertyName() setters properly update the variables.my.propertyName value, and I've dumped this to verify that.
The only difference I've seen between adding CFPROPERTY and not, is that when you dump the Bean, there is a presence of a PROPERTIES sub-structure which has the values listed. This doesn't mean much to me, because my Beans that have instance data all inherit from a BaseBean CFC that gives them a getMemento() function (which dumps the variables.my instance data).
The only other thing I could think of that CFPROPERTY does is add an additional level of introspection, which has more value in development environments than production.
Any thoughts?