冗長で単純なコードが本当に問題になるかを考えるべき
単純なコードは、やや冗長であっても理解するのは簡単です。似たような関数に同じような変更を後で加えることになったとしても、実際のところそれは大した手間ではありません。一方、高度に抽象化されたコードは、その抽象化メカニズムをまず理解し、それをどう使っているのかを次に理解する必要があるので、難解になりがちです。
c.f.
低レイヤを知りたい人のためのCコンパイラ作成入門