Currently the definition of wasm_exporttype_type in https://github.com/WebAssembly/wasm-c-api/blob/master/include/wasm.h#L292 does not mark the return type as being owned by the caller.
The Wasmtime implementation of this function allocates a new wasm_externtype_t and returns it to the caller which will leak unless the caller calls wasm_externtype_delete. That likely won't occur as the expectation is that the caller does not own the returned value from wasm_exporttype_type.
The implementation of wasm_exporttype_type should probably return an interior pointer to a "cached" wasm_externtype_t.