There are entities which are not interoperable. Polymorphic objects
(extensible types) are explicitly excluded from interoperability.
Similarly, Fortran pointers are not interoperable with any entity in C,
etc. (There is a document for extending the scope of interoperability,
but this is beyond F2008.)
For those, the Fortran compiler may do what it likes, if
standard-conforming. Without bind(C), entities may be optimized away,
for instance. There may be means to access them, but the corresponding
program will not be portable, not even w.r.t. changing compiler
switches. Therefore, I don't think that generic wrapper packages beyond
straight bind(C) are possible.
-- Wolfgang