Technical debt is a real doozy. There's no value for the higher ups in fixing it, so nobody does.
New features just take longer and longer to add, under a teetering pile of your own shit.
I think part of the problem is the ideal underlying structure for your project doesn't really reveal itself until several years in, and by then it's a nice to have for some other time that never arrives.