We're assuming we all somehow have perfect customers with technical knowledge who know exactly what they want and can express it as such, while gracefully accepting pushback over constraints brought up.
Anyone who's worked in a "bikeshed sensitive" stack of programming knows how quickly things railroad off when such customers get direct access to an engineer. Think being a fullstack dev but you constantly get requests over button colors while you're trying to get the database setup.
Dealing with the occasional pushy customers is way easier than dealing with pushy PMs or designers. Which happen to be the majority.
Customers bikeshed WAY less than those two categories.
I'm glad you dealt with some good customers. I can't agree in my experience, though.
It's not luck.
Customers want to save money and see projects finished. That anyone can reason with.
Someone inside the company trying to climb the corporate ladder? Different story.