Derrick, what Zac is referring to is what I said in the first bullet of my first reply:
“the onxxxxx methods not only provide clear separation of concerns/organization within the file, they also offer single-threading/implicit locking of their execution–when cf or Lucee implicitly call them, though NOT when other cfml explicitly calls them. The latter is little-understood but can lead to subtle bugs”
To be clear, this matter has zero impact on the cfapplication tag you’ve shown. It applies only to what code you may run.
For example, you may set some application variables to hold some values. If you don’t do anything to wrap them in a condition, those run on EVERY request. If you put their assignments in onapplicationstart, Lucee and cf will ensure that only the first request making a request when the app doesn’t exist will make those assignments. Others that try to run at the very same time will be blocked, then will see that the app exists.
You could write code to do the same. It’s that you’d have to…if indeed you need to. If your app var assignments are always set to the same static values, there may be no “race condition”, if two requests run that code at the same time.
But some apps get a lot more susceptible to such race conditions, sometimes not so obviously, and the onxxxx methods help avoid them.
As for your session var assignments, it may seem reasonable that if you wrap those in a simple test for whether the session exists, you’d not hit trouble. Again there are scenarios where trouble can happen. Should you worry about it? Maybe not.
Again the main motivation of switching to application.cfc (besides simply “modernizing” or “avoiding seeming recalcitrant”) is to enjoy the benefit those on methods offer. Some don’t feel they’re motivation enough.
But the truth is that it’s usually pretty easy to convert from the one to the other, so unless it’s somehow REALLY painful in some case, there’s often more time spent debating/researching the effort than would be spent just doing it. 
But each has to decide for themselves. BTW, this is DEFINITELY something you could give to most any AI, asking it to convert your code from one to the other. You can/should remove any sensitive var values before doing so, if it’s a non-local AI.
Or let’s see what others may have to say in reply to you (or me).