That’s actually not true and this is the mistaken idea engineers have. It’s not a negotiation. User value that translates to business goals strictly always trumps internal code. Or you don’t have a business to fund that code. You find a way to do it if you need to fund the business. If not your are sunk.
I agree with you to some extent, but if you go with this line of thinking consequently then things of no apparent "User Value" (say, a code base not riddled with technical debt) never gets any budget or attention in favor of shoehorning in more shiny stuff of obvious value.
What this then leads to is borderline unmaintainable code because the project managers, software architects, etc. rarely touch the IDE anymore and the more junior people can't or won't articulate the issues they are having. (i.e. a feature made tests 10x slower, a hastily added API times out often locally, etc.)
This then leads to people jumping ship every 1-2 years, low productivity and bad implementations. All in the name of precious User Value!