Understood on all points, though let's clarify (for everyone following along, not just you) that it's NOT (not, not) that "all unscoped variables" must be addressed.
It's only those which would be resolved by cf finding the variable in any of the several scopes listed in the March update technote--which are those scopes that could be manipulated from outside the request, such as form, url, cookie, cgi, etc.
Also, I hope folks caught the news of the "patch" Adobe offered which helps SPECIFICALLY IDENTIFY cases where this is happening, as it causes cf to log (to a new unscoped.log) whenever a request hits code that resolves an unscoped variable in one of those scopes. It logs the cf template, the given variable, and the given scope (though not the line number), to help devs find and fix code that would be affected of that workaround was removed.
BTW, the app-level workaround will also remain in cf2025.
More on all this in my blog posts on the matter in March and July (highlighting the patch/logging), at
carehart.org/blog.