C言語であることとインターフェースを使った設計が必要であるかは
全く別問題な気がする。
C++やJavaみたいなオブジェクト指向言語でインターフェースを使った設計が
広く使われているって事はC言語しか使えない環境でインターフェース的なことをやりたい
欲求も当然あるんじゃ無いかな
C言語でインターフェースの型情報を持てないのは、言語使用としてサポートしていないと言うだけで
それを実装できないというわけでは無いと思う。
例えばインターフェース型の構造体に静的に宣言された型識別子を割り当てて管理することも出来る。
当然可能であればC++で書いた方がよっぽど楽って事にはなると思うけど。