Isn’t whether your API is stateless dependent on how you write it? Why don’t you just not use the session scope?
If your goal is to avoid the overhead of having the CFML engine using memory for session at all, you could have a check in Application.cfc that sets the session timeout to 0 for API requests (never actually tried that)
If you really need to have two ColdFusion application scopes, you should be able to share pretty much all the code without having to physically duplicate it on your servers hard drive using external locations You can point to views, models, handlers, etc outside of the web root to share between multiple apps.
ColdBox Platform Evangelist
Ortus Solutions, Corp