Thank goodness for Google. I didn't know the answer, but googled "coldfusion onmissingmethod this scope" and the first match explained your situation in one of the comments. I feel bad for reproducing Elliott's work, but it gets your question answered:
[...]
CFCs are just proxied pages. CreateObject() returns a TemplateProxy that wraps the CFPage that is your actual code.
[...]
when you call the function as "this.getFoo()" or from the outside as "myObject.getFoo()", instead what happens is that it calls a method on the TemplateProxy for invoking a method, which in turn calls the function on the proxied page.
OnMissingMethod handling exists in the invoke() function on the TemplateProxy, thus it only works from outside or through the this scope.
[...]