> Generality leads to bloat in software systems and increases complexity unnecessarily.
This is missing some qualifiers methinks. An interface is generic in that you don't have a concrete implementation, surely that can be used to decrease complexity rather than bloat it?