I have a list of priorities when developing (most to least important):
Reduce Statefulness -> Explicit error handling -> Reduce Dependencies (sometimes even violating DRY if need be) -> Reduce complexity -> Everything else.
Designing systems or software usually has decoupling and complexity as a priority, with everything else in second place.