What I describe is not out of a management textbook. This is really really elementary stuff if you want to sustain any serious operation.
Let me explain: so you're saying a customer is on fire. Let's say that a query generated by that customer for some reason it creates a spike in your DB. Let's say that it almost DOSes your system. You know it doesn't happen locally, with your dummy/fixture data and it doesn't happen with other users/customers. So some particular configuration of state(your DB) is creating this problem. What are you gonna do my friend? Retry the query on production while you have a debugger on the webapp process? Please... be serious.
Remember, it's only once you have to setup this kind of infrastructure(and you can scale it up or down depending on your resources). And then you can do business like a normal person. What you describe is like throwing my sanity out of the window every time there's a severe(or not) support issue ticket. It doesn't scale!
No they don't. I am not living in a bubble. You're describing a mom and pop shop.
And by the way you don't have to be a code ninja or have a super devops team for that.
You can have your code locally, point your DB config to a staging server with a copy(you do backups daily, don't you?) of production and boom!
Seriously now... elementary stuff. If you're still changing code directly on live systems you have a long way to go.