> OS ABIs aren't independent of the language.
I'd push back on this a bit. The ABI is "put the arguments on the stack this way and jump to this address". The fact that it's easy to do in C doesn't really make a difference, or make that process "C specific" at all, any other language would need to do the same thing.
If you require those arguments to represent rust objects or be reference-counted in some way, it would impose more restrictions on the caller, not fewer.