>>1
>だが、メンテナンス作業を繰り返すうちに、If (処理Aの時のみ)...のような記述が増え、所謂マカロニソースになってしまった。 

本当に共通化されていれば、普通「処理Aの時のみ」なんて
ベタな分岐がソースコードに埋め込まれるはずが無いんだが・・・

多分、共通化が全然足りてないんだろう。

試しに聞いてみるけど、その「共通」関数って一体「何行」あるの?