This would have made a lot of sense as an Inline module, which already has support for parameter passing, caching, compiling, interfacing, inlining, etc.
Module::Compile was written to solve a slightly different problem than Inline. The api is simpler, and better suited for translation based operations (like source filters) than interfacing foreign runtimes with additional precompilation, mostly via introduction of symbols as alias for foreign functions (by overriding load or relying on DynaLoader). For these reasons Module::Compile is more appropriate. Also, Inline's caching is not based on Perl's .pmc infrastructure, so shipping cached code is trickier.