At least 50% of time on every software team I've ever been on was spent on maintenance and fixing bugs.
You can expense such time as opex, but it has to be justified, and that's often difficult to do. Did you fix a bug by refactoring some code to avoid the problem? Is that capex or opex? Can you convince the IRS of such?
The old (and now new) rules eliminated this accounting game and uncertainty.
Sure. I get that having to facilitate accounting takes away from programming, and that nothing is cut in dry with the IRS. I'm not even a fan of the general idea of mandatory depreciation schedules, seeing depreciation as more of an artifact that fell out from double entry book keeping's proliferation of different types of accounts. My only point was that this is just the same regime that everything else has to deal with.
For example if you pay someone to fix a leaky roof and they replace a section of a given size, can you call it a repair/maintenance expense or should you be depreciating it as an improvement to the building? Can you convince the IRS of such? The only reason this has more straightforward answers is that accountants have been answering this question longer.