I know! We need dynamically loadable shared object files and a new language to describe all the things that file can do, and then a compiler for that language that generates shared objects that are dynamically loaded at runtime....
Oh, wait. But seriously (yes, Virginia, for the humor impaired, that *was* a joke...) there are benefits to external description files. Somewhat obviously, it's the whole "little language" concept that we all know and love, and we all know that, but the question becomes, for something like "file", how complex does one make that little language? At what point does the tradeoff between complexity of the description language and hand-coded C break in favor of one versus the other? How often are we updating things? And that *is* a legitimate question, and I think it's the basis of the original question.