Sloppy programming is an altogether separate issue. Indeed, it was easier to make mistakes under the old way due to tracking the many little bits that could have multiple meanings in different scenarios, and programs that did fancy tricks to save memory and CPU cycles.
The stuff I referred too is mostly technical but doesn't hurt code quality. For instance, on the mainframe a data field would be specified in various classes of numeric to maximize efficiency. We don't bother with that today (unless the files and processing are really large and complex) because the computers handle millions of records so very quickly. (PCs support some of that too but I doubt many use PC's packed decimal fields).
Cheap computing has allowed things like spreadsheets and word processing to be freely available to individuals. We used to do that stuff on the mainframe, but it was very wasteful to tie up a big expensive mainframe as a typewriter or adding machine.
Unlimited long distance is available reasonably cheaply for residential customers, but I think business customers still have to pay pretty high WATS rates. It's much cheaper today, but for businesses the meter is still running, so some controls make sense.
Remember today business controls are much less than in years past. In the past, only big bosses would be able to dial outside, and still had to place toll calls with the PBX operator who would write up a toll ticket. Not like that today.