The recent (-ly undone) change went against decades of how things were, was crippling for medium size cashflow-positive startups, effectively increased taxes, etc. But it was really just a straightforward application of the general principles that apply to most everything else.
The point is that building a piece of software that is going to be in use for several+ years is creating an asset. It just goes against our intuition since this industry is so driven by fast fashion, and the bookkeeping of specific components, their depreciation schedules, early end of life, (etc) seems like needless complexity.
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.
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.