Not all code debt contains massive downsides. The key to using technical debt wisely is understanding the difference, and architecting a system that is loosely coupled to allow strategic debt to be taken on in places where it makes sense.
This book, is not specifically about coupling but the first chapter is an excellent overview that all developers should read: