An Arc to C compiler in Arc might be able to do it, with appropriate optimizations. I might actually work on that for GSoC next summer. I guess we'll see where it goes...
We may need to define extensions for optimization purposes though.
As an aside, defm may help, by ensuring that certain variables always belong to certain types (although the other problem is with regards to . rest arguments). Really, having an optional type declaration is good, and helps make it easier for the compiler to optimize.