So coming back to my presumptuous 'conclusion': Rust Traitscan be used in extern "C" code, so long as the object implementing the trait is passed into the call as a downcast trait object and the const ImplType* is replaced with void*. Thus cffi wrapper/interface implementations can be defined (generically/efficiently) at the trait level. Thanks @BurntSushi & @birkenfeld!
To round it off: customarily you will have an ordinary constructor and downcaster: