My family's business was well-served by a CRM written in BBj, a JVM-hosted stepchild of Business Basic. Over the years, the language has added structured programming, database support, easy Java interop, and other post-1980 amenities. But the vendor enjoys their flat files, single letter variable names, and GOTOs.
(We even tried to migrate to something built on sounder technical foundations, but its rigid UI and the new vendor's limited desire to customize things forced us to migrate back. It was a very expensive lesson in what matters.)
Of course, as a programmer, paying bills is only part of the equation. I wasn't interested in writing BBj, and I'm not sure I'd be happy coding in CFML. Lucee seems decent (closures!), but when I looked at lucee minute, it seemed like parts of the samples still relied on the tag style code. I wonder if the wider CF ecosystem resembles this -- a modern implementation providing backward compatibility, with folks leaning on "the old ways" to varying degrees.
My first real web app was written in PHP -- there as well, the code is only as modern as you make it. It did the job, though.
FWIW, I think the current trend of fat front-ends, pure-JS, and microservices is a recipe for complex deploys and reliance on shoddy, WIP tooling, but that's a story for another day.
I don't think you're wrong about the "wider CF ecosystem" - there are a lot of legacy apps stuck in legacy practices. As you say, any code/app is only as modern as you make it. I've seen some pretty awful PHP stuff that turned me off of the language for a while, until I discovered Symfony.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.