仮に、「複雑化した時の最良のコード」が「複雑化した仕様」に対して一意に定まるとすると、
・共通化して簡単なコード→複雑化した仕様のコード
・共通化していないコード→複雑化した仕様のコード
どちらも最終的には同じ結果が得られる事になる。
そうすると、どちらの労力が少ない・安全かという話になるんだけど、じつは共通化して簡単なコードから複雑化した仕様のコードを生成する場合、共通化されてたコードをコピペして修正して、その差分を追加すればよいので、はじめから共通化されたコードを書くと単純に手間が少なくなることが多い。
ただし、実装されたものを共通化する場合は、やっぱり別の方が都合がいいね、となることはある。これは共通化する手間がそのまま無駄になる事が無きにしもあらず。