There is a constant tension between:
- backward compatibility ("we built our business around [tax provision]! you can't remove it now!"),
- expansion of the codebase to accommodate new requirements ("we must get more $activity; let's add a tax credit to incentivize it!")
- refactoring to better serve existing organizational goals ("we are leaking billions of dollars because of [loophole]! we have to close it now!")
This is why things like the "flat tax" or other simplification schemes are perennially floated, and also why they continue to get shot down: desires to simplify and refactor run into desires to support existing worfklows as well as current and anticipated future social goals, and they just can't get off the ground.
This is also why I end up posting basically the same thing in every tax thread, from the late great Martin Ginsburg, from whom I was lucky enough to take corporate tax: "Everything in the tax code is simultaneously a trap for the unwary, and an opportunity for the well-advised."
So your own interactions with the tax code should be considered similar to, say, an SAP deployment or something. Theoretically it's all documented and you can figure it out on your own, but in real life an expensive consultant will pay for herself over and over.