I need a reality check - and hopefully an explanation (if my reality is wrong).
The way the CF application framework evaluates things is this (my understanding) - re
There's two things at play here: when code runs, and when variable scopes are availed and how long they last.
Scopes:
this.name, this.datasource, etc). Those special-meaning variables can be changed per session or per request in the relevant handlers, but seem to apply to the entire system (ie: not for the specific session or request making the setting change). In normal CFCs, the this scope is used to expose public variables, but as there is no public instance of Application.cfc, there is no point using the this scope beyond making those special settings. If one wants to have variables available to all methods within the CFC, use the variables scope as one normally would. Contrary to someone's advice here, this-scoped variables are NOT the same as application-scoped variables.this.name setting is made. Only becomes available in onApplicationStart() and thenceforth from there.
I've demonstrated this in a blog post (test code provided), over here. it's too lengthy to include here, but the stuff above summarises it.