@navi @humm You're the third person to come up with that idea and tell me about it.
We can do it in C, because there's no function overloading in C. There's only one type that goes into the function, so we don't need the compound literal's type to know that { foo, nya, mew } goes into the function here. This would make function passing work very well, and e.g. sokol_gfx would be a lot easier to use because it makes extensive use of compound literals but the code looks quite a bit uglier for it: https://github.com/floooh/sokol/blob/master/sokol_gfx.h#L133
The problem is, people are annoyed that this would remove type information being explicitly visible for what they feel is not much useful gain. You'd have to go argue with those people primarily, and the best way to get them to say what they mean on the record is to write a paper for it.
I'm overbooked on work, so as much as I like the idea personally I can't write that sort of idea for you.
Similar, one could consider "named parameters" or something similar. Again, much easier to do in C because there's no function overloading, which means there's only one set of names. You might need to come up with a syntax to separate the name of the parameter from the name you want to expose.
Eitherway, good luck!