Isn't the primary requirement for writing a highly scalable distributed system to have clean and strictly decoupled code?
Otherwise scaling becomes a series of rewrites.
And in that scenario engineering time may be less expensive than tons of iron, the passing of said time is a killer. In most software project, time is a bigger issue than money.
And in that scenario engineering time may be less expensive than tons of iron, the passing of said time is a killer. In most software project, time is a bigger issue than money.